/*
 * Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/firestore/v1/firestore.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2ffirestore_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2ffirestore_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3011000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "google/api/annotations.pb.h"
#include "google/firestore/v1/common.pb.h"
#include "google/firestore/v1/document.pb.h"
#include "google/firestore/v1/query.pb.h"
#include "google/firestore/v1/write.pb.h"
#include <google/protobuf/empty.pb.h>
#include <google/protobuf/timestamp.pb.h>
#include "google/rpc/status.pb.h"
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_google_2ffirestore_2fv1_2ffirestore_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[27]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto;
namespace google {
namespace firestore {
namespace v1 {
class BatchGetDocumentsRequest;
class BatchGetDocumentsRequestDefaultTypeInternal;
extern BatchGetDocumentsRequestDefaultTypeInternal _BatchGetDocumentsRequest_default_instance_;
class BatchGetDocumentsResponse;
class BatchGetDocumentsResponseDefaultTypeInternal;
extern BatchGetDocumentsResponseDefaultTypeInternal _BatchGetDocumentsResponse_default_instance_;
class BeginTransactionRequest;
class BeginTransactionRequestDefaultTypeInternal;
extern BeginTransactionRequestDefaultTypeInternal _BeginTransactionRequest_default_instance_;
class BeginTransactionResponse;
class BeginTransactionResponseDefaultTypeInternal;
extern BeginTransactionResponseDefaultTypeInternal _BeginTransactionResponse_default_instance_;
class CommitRequest;
class CommitRequestDefaultTypeInternal;
extern CommitRequestDefaultTypeInternal _CommitRequest_default_instance_;
class CommitResponse;
class CommitResponseDefaultTypeInternal;
extern CommitResponseDefaultTypeInternal _CommitResponse_default_instance_;
class CreateDocumentRequest;
class CreateDocumentRequestDefaultTypeInternal;
extern CreateDocumentRequestDefaultTypeInternal _CreateDocumentRequest_default_instance_;
class DeleteDocumentRequest;
class DeleteDocumentRequestDefaultTypeInternal;
extern DeleteDocumentRequestDefaultTypeInternal _DeleteDocumentRequest_default_instance_;
class GetDocumentRequest;
class GetDocumentRequestDefaultTypeInternal;
extern GetDocumentRequestDefaultTypeInternal _GetDocumentRequest_default_instance_;
class ListCollectionIdsRequest;
class ListCollectionIdsRequestDefaultTypeInternal;
extern ListCollectionIdsRequestDefaultTypeInternal _ListCollectionIdsRequest_default_instance_;
class ListCollectionIdsResponse;
class ListCollectionIdsResponseDefaultTypeInternal;
extern ListCollectionIdsResponseDefaultTypeInternal _ListCollectionIdsResponse_default_instance_;
class ListDocumentsRequest;
class ListDocumentsRequestDefaultTypeInternal;
extern ListDocumentsRequestDefaultTypeInternal _ListDocumentsRequest_default_instance_;
class ListDocumentsResponse;
class ListDocumentsResponseDefaultTypeInternal;
extern ListDocumentsResponseDefaultTypeInternal _ListDocumentsResponse_default_instance_;
class ListenRequest;
class ListenRequestDefaultTypeInternal;
extern ListenRequestDefaultTypeInternal _ListenRequest_default_instance_;
class ListenRequest_LabelsEntry_DoNotUse;
class ListenRequest_LabelsEntry_DoNotUseDefaultTypeInternal;
extern ListenRequest_LabelsEntry_DoNotUseDefaultTypeInternal _ListenRequest_LabelsEntry_DoNotUse_default_instance_;
class ListenResponse;
class ListenResponseDefaultTypeInternal;
extern ListenResponseDefaultTypeInternal _ListenResponse_default_instance_;
class RollbackRequest;
class RollbackRequestDefaultTypeInternal;
extern RollbackRequestDefaultTypeInternal _RollbackRequest_default_instance_;
class RunQueryRequest;
class RunQueryRequestDefaultTypeInternal;
extern RunQueryRequestDefaultTypeInternal _RunQueryRequest_default_instance_;
class RunQueryResponse;
class RunQueryResponseDefaultTypeInternal;
extern RunQueryResponseDefaultTypeInternal _RunQueryResponse_default_instance_;
class Target;
class TargetDefaultTypeInternal;
extern TargetDefaultTypeInternal _Target_default_instance_;
class TargetChange;
class TargetChangeDefaultTypeInternal;
extern TargetChangeDefaultTypeInternal _TargetChange_default_instance_;
class Target_DocumentsTarget;
class Target_DocumentsTargetDefaultTypeInternal;
extern Target_DocumentsTargetDefaultTypeInternal _Target_DocumentsTarget_default_instance_;
class Target_QueryTarget;
class Target_QueryTargetDefaultTypeInternal;
extern Target_QueryTargetDefaultTypeInternal _Target_QueryTarget_default_instance_;
class UpdateDocumentRequest;
class UpdateDocumentRequestDefaultTypeInternal;
extern UpdateDocumentRequestDefaultTypeInternal _UpdateDocumentRequest_default_instance_;
class WriteRequest;
class WriteRequestDefaultTypeInternal;
extern WriteRequestDefaultTypeInternal _WriteRequest_default_instance_;
class WriteRequest_LabelsEntry_DoNotUse;
class WriteRequest_LabelsEntry_DoNotUseDefaultTypeInternal;
extern WriteRequest_LabelsEntry_DoNotUseDefaultTypeInternal _WriteRequest_LabelsEntry_DoNotUse_default_instance_;
class WriteResponse;
class WriteResponseDefaultTypeInternal;
extern WriteResponseDefaultTypeInternal _WriteResponse_default_instance_;
}  // namespace v1
}  // namespace firestore
}  // namespace google
PROTOBUF_NAMESPACE_OPEN
template<> ::google::firestore::v1::BatchGetDocumentsRequest* Arena::CreateMaybeMessage<::google::firestore::v1::BatchGetDocumentsRequest>(Arena*);
template<> ::google::firestore::v1::BatchGetDocumentsResponse* Arena::CreateMaybeMessage<::google::firestore::v1::BatchGetDocumentsResponse>(Arena*);
template<> ::google::firestore::v1::BeginTransactionRequest* Arena::CreateMaybeMessage<::google::firestore::v1::BeginTransactionRequest>(Arena*);
template<> ::google::firestore::v1::BeginTransactionResponse* Arena::CreateMaybeMessage<::google::firestore::v1::BeginTransactionResponse>(Arena*);
template<> ::google::firestore::v1::CommitRequest* Arena::CreateMaybeMessage<::google::firestore::v1::CommitRequest>(Arena*);
template<> ::google::firestore::v1::CommitResponse* Arena::CreateMaybeMessage<::google::firestore::v1::CommitResponse>(Arena*);
template<> ::google::firestore::v1::CreateDocumentRequest* Arena::CreateMaybeMessage<::google::firestore::v1::CreateDocumentRequest>(Arena*);
template<> ::google::firestore::v1::DeleteDocumentRequest* Arena::CreateMaybeMessage<::google::firestore::v1::DeleteDocumentRequest>(Arena*);
template<> ::google::firestore::v1::GetDocumentRequest* Arena::CreateMaybeMessage<::google::firestore::v1::GetDocumentRequest>(Arena*);
template<> ::google::firestore::v1::ListCollectionIdsRequest* Arena::CreateMaybeMessage<::google::firestore::v1::ListCollectionIdsRequest>(Arena*);
template<> ::google::firestore::v1::ListCollectionIdsResponse* Arena::CreateMaybeMessage<::google::firestore::v1::ListCollectionIdsResponse>(Arena*);
template<> ::google::firestore::v1::ListDocumentsRequest* Arena::CreateMaybeMessage<::google::firestore::v1::ListDocumentsRequest>(Arena*);
template<> ::google::firestore::v1::ListDocumentsResponse* Arena::CreateMaybeMessage<::google::firestore::v1::ListDocumentsResponse>(Arena*);
template<> ::google::firestore::v1::ListenRequest* Arena::CreateMaybeMessage<::google::firestore::v1::ListenRequest>(Arena*);
template<> ::google::firestore::v1::ListenRequest_LabelsEntry_DoNotUse* Arena::CreateMaybeMessage<::google::firestore::v1::ListenRequest_LabelsEntry_DoNotUse>(Arena*);
template<> ::google::firestore::v1::ListenResponse* Arena::CreateMaybeMessage<::google::firestore::v1::ListenResponse>(Arena*);
template<> ::google::firestore::v1::RollbackRequest* Arena::CreateMaybeMessage<::google::firestore::v1::RollbackRequest>(Arena*);
template<> ::google::firestore::v1::RunQueryRequest* Arena::CreateMaybeMessage<::google::firestore::v1::RunQueryRequest>(Arena*);
template<> ::google::firestore::v1::RunQueryResponse* Arena::CreateMaybeMessage<::google::firestore::v1::RunQueryResponse>(Arena*);
template<> ::google::firestore::v1::Target* Arena::CreateMaybeMessage<::google::firestore::v1::Target>(Arena*);
template<> ::google::firestore::v1::TargetChange* Arena::CreateMaybeMessage<::google::firestore::v1::TargetChange>(Arena*);
template<> ::google::firestore::v1::Target_DocumentsTarget* Arena::CreateMaybeMessage<::google::firestore::v1::Target_DocumentsTarget>(Arena*);
template<> ::google::firestore::v1::Target_QueryTarget* Arena::CreateMaybeMessage<::google::firestore::v1::Target_QueryTarget>(Arena*);
template<> ::google::firestore::v1::UpdateDocumentRequest* Arena::CreateMaybeMessage<::google::firestore::v1::UpdateDocumentRequest>(Arena*);
template<> ::google::firestore::v1::WriteRequest* Arena::CreateMaybeMessage<::google::firestore::v1::WriteRequest>(Arena*);
template<> ::google::firestore::v1::WriteRequest_LabelsEntry_DoNotUse* Arena::CreateMaybeMessage<::google::firestore::v1::WriteRequest_LabelsEntry_DoNotUse>(Arena*);
template<> ::google::firestore::v1::WriteResponse* Arena::CreateMaybeMessage<::google::firestore::v1::WriteResponse>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace google {
namespace firestore {
namespace v1 {

enum TargetChange_TargetChangeType : int {
  TargetChange_TargetChangeType_NO_CHANGE = 0,
  TargetChange_TargetChangeType_ADD = 1,
  TargetChange_TargetChangeType_REMOVE = 2,
  TargetChange_TargetChangeType_CURRENT = 3,
  TargetChange_TargetChangeType_RESET = 4,
  TargetChange_TargetChangeType_TargetChange_TargetChangeType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  TargetChange_TargetChangeType_TargetChange_TargetChangeType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool TargetChange_TargetChangeType_IsValid(int value);
constexpr TargetChange_TargetChangeType TargetChange_TargetChangeType_TargetChangeType_MIN = TargetChange_TargetChangeType_NO_CHANGE;
constexpr TargetChange_TargetChangeType TargetChange_TargetChangeType_TargetChangeType_MAX = TargetChange_TargetChangeType_RESET;
constexpr int TargetChange_TargetChangeType_TargetChangeType_ARRAYSIZE = TargetChange_TargetChangeType_TargetChangeType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TargetChange_TargetChangeType_descriptor();
template<typename T>
inline const std::string& TargetChange_TargetChangeType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, TargetChange_TargetChangeType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function TargetChange_TargetChangeType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    TargetChange_TargetChangeType_descriptor(), enum_t_value);
}
inline bool TargetChange_TargetChangeType_Parse(
    const std::string& name, TargetChange_TargetChangeType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<TargetChange_TargetChangeType>(
    TargetChange_TargetChangeType_descriptor(), name, value);
}
// ===================================================================

class GetDocumentRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.GetDocumentRequest) */ {
 public:
  GetDocumentRequest();
  virtual ~GetDocumentRequest();

  GetDocumentRequest(const GetDocumentRequest& from);
  GetDocumentRequest(GetDocumentRequest&& from) noexcept
    : GetDocumentRequest() {
    *this = ::std::move(from);
  }

  inline GetDocumentRequest& operator=(const GetDocumentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetDocumentRequest& operator=(GetDocumentRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const GetDocumentRequest& default_instance();

  enum ConsistencySelectorCase {
    kTransaction = 3,
    kReadTime = 5,
    CONSISTENCY_SELECTOR_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const GetDocumentRequest* internal_default_instance() {
    return reinterpret_cast<const GetDocumentRequest*>(
               &_GetDocumentRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(GetDocumentRequest& a, GetDocumentRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetDocumentRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline GetDocumentRequest* New() const final {
    return CreateMaybeMessage<GetDocumentRequest>(nullptr);
  }

  GetDocumentRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<GetDocumentRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const GetDocumentRequest& from);
  void MergeFrom(const GetDocumentRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(GetDocumentRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.GetDocumentRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kNameFieldNumber = 1,
    kMaskFieldNumber = 2,
    kTransactionFieldNumber = 3,
    kReadTimeFieldNumber = 5,
  };
  // string name = 1;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .google.firestore.v1.DocumentMask mask = 2;
  bool has_mask() const;
  private:
  bool _internal_has_mask() const;
  public:
  void clear_mask();
  const ::google::firestore::v1::DocumentMask& mask() const;
  ::google::firestore::v1::DocumentMask* release_mask();
  ::google::firestore::v1::DocumentMask* mutable_mask();
  void set_allocated_mask(::google::firestore::v1::DocumentMask* mask);
  private:
  const ::google::firestore::v1::DocumentMask& _internal_mask() const;
  ::google::firestore::v1::DocumentMask* _internal_mutable_mask();
  public:

  // bytes transaction = 3;
  private:
  bool _internal_has_transaction() const;
  public:
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // .google.protobuf.Timestamp read_time = 5;
  bool has_read_time() const;
  private:
  bool _internal_has_read_time() const;
  public:
  void clear_read_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_read_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_read_time();
  void set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_read_time();
  public:

  void clear_consistency_selector();
  ConsistencySelectorCase consistency_selector_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.GetDocumentRequest)
 private:
  class _Internal;
  void set_has_transaction();
  void set_has_read_time();

  inline bool has_consistency_selector() const;
  inline void clear_has_consistency_selector();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::google::firestore::v1::DocumentMask* mask_;
  union ConsistencySelectorUnion {
    ConsistencySelectorUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
    PROTOBUF_NAMESPACE_ID::Timestamp* read_time_;
  } consistency_selector_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class ListDocumentsRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.ListDocumentsRequest) */ {
 public:
  ListDocumentsRequest();
  virtual ~ListDocumentsRequest();

  ListDocumentsRequest(const ListDocumentsRequest& from);
  ListDocumentsRequest(ListDocumentsRequest&& from) noexcept
    : ListDocumentsRequest() {
    *this = ::std::move(from);
  }

  inline ListDocumentsRequest& operator=(const ListDocumentsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListDocumentsRequest& operator=(ListDocumentsRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ListDocumentsRequest& default_instance();

  enum ConsistencySelectorCase {
    kTransaction = 8,
    kReadTime = 10,
    CONSISTENCY_SELECTOR_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ListDocumentsRequest* internal_default_instance() {
    return reinterpret_cast<const ListDocumentsRequest*>(
               &_ListDocumentsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(ListDocumentsRequest& a, ListDocumentsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ListDocumentsRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ListDocumentsRequest* New() const final {
    return CreateMaybeMessage<ListDocumentsRequest>(nullptr);
  }

  ListDocumentsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ListDocumentsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ListDocumentsRequest& from);
  void MergeFrom(const ListDocumentsRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ListDocumentsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.ListDocumentsRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kParentFieldNumber = 1,
    kCollectionIdFieldNumber = 2,
    kPageTokenFieldNumber = 4,
    kOrderByFieldNumber = 6,
    kMaskFieldNumber = 7,
    kPageSizeFieldNumber = 3,
    kShowMissingFieldNumber = 12,
    kTransactionFieldNumber = 8,
    kReadTimeFieldNumber = 10,
  };
  // string parent = 1;
  void clear_parent();
  const std::string& parent() const;
  void set_parent(const std::string& value);
  void set_parent(std::string&& value);
  void set_parent(const char* value);
  void set_parent(const char* value, size_t size);
  std::string* mutable_parent();
  std::string* release_parent();
  void set_allocated_parent(std::string* parent);
  private:
  const std::string& _internal_parent() const;
  void _internal_set_parent(const std::string& value);
  std::string* _internal_mutable_parent();
  public:

  // string collection_id = 2;
  void clear_collection_id();
  const std::string& collection_id() const;
  void set_collection_id(const std::string& value);
  void set_collection_id(std::string&& value);
  void set_collection_id(const char* value);
  void set_collection_id(const char* value, size_t size);
  std::string* mutable_collection_id();
  std::string* release_collection_id();
  void set_allocated_collection_id(std::string* collection_id);
  private:
  const std::string& _internal_collection_id() const;
  void _internal_set_collection_id(const std::string& value);
  std::string* _internal_mutable_collection_id();
  public:

  // string page_token = 4;
  void clear_page_token();
  const std::string& page_token() const;
  void set_page_token(const std::string& value);
  void set_page_token(std::string&& value);
  void set_page_token(const char* value);
  void set_page_token(const char* value, size_t size);
  std::string* mutable_page_token();
  std::string* release_page_token();
  void set_allocated_page_token(std::string* page_token);
  private:
  const std::string& _internal_page_token() const;
  void _internal_set_page_token(const std::string& value);
  std::string* _internal_mutable_page_token();
  public:

  // string order_by = 6;
  void clear_order_by();
  const std::string& order_by() const;
  void set_order_by(const std::string& value);
  void set_order_by(std::string&& value);
  void set_order_by(const char* value);
  void set_order_by(const char* value, size_t size);
  std::string* mutable_order_by();
  std::string* release_order_by();
  void set_allocated_order_by(std::string* order_by);
  private:
  const std::string& _internal_order_by() const;
  void _internal_set_order_by(const std::string& value);
  std::string* _internal_mutable_order_by();
  public:

  // .google.firestore.v1.DocumentMask mask = 7;
  bool has_mask() const;
  private:
  bool _internal_has_mask() const;
  public:
  void clear_mask();
  const ::google::firestore::v1::DocumentMask& mask() const;
  ::google::firestore::v1::DocumentMask* release_mask();
  ::google::firestore::v1::DocumentMask* mutable_mask();
  void set_allocated_mask(::google::firestore::v1::DocumentMask* mask);
  private:
  const ::google::firestore::v1::DocumentMask& _internal_mask() const;
  ::google::firestore::v1::DocumentMask* _internal_mutable_mask();
  public:

  // int32 page_size = 3;
  void clear_page_size();
  ::PROTOBUF_NAMESPACE_ID::int32 page_size() const;
  void set_page_size(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_page_size() const;
  void _internal_set_page_size(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // bool show_missing = 12;
  void clear_show_missing();
  bool show_missing() const;
  void set_show_missing(bool value);
  private:
  bool _internal_show_missing() const;
  void _internal_set_show_missing(bool value);
  public:

  // bytes transaction = 8;
  private:
  bool _internal_has_transaction() const;
  public:
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // .google.protobuf.Timestamp read_time = 10;
  bool has_read_time() const;
  private:
  bool _internal_has_read_time() const;
  public:
  void clear_read_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_read_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_read_time();
  void set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_read_time();
  public:

  void clear_consistency_selector();
  ConsistencySelectorCase consistency_selector_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.ListDocumentsRequest)
 private:
  class _Internal;
  void set_has_transaction();
  void set_has_read_time();

  inline bool has_consistency_selector() const;
  inline void clear_has_consistency_selector();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr parent_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr collection_id_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr page_token_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr order_by_;
  ::google::firestore::v1::DocumentMask* mask_;
  ::PROTOBUF_NAMESPACE_ID::int32 page_size_;
  bool show_missing_;
  union ConsistencySelectorUnion {
    ConsistencySelectorUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
    PROTOBUF_NAMESPACE_ID::Timestamp* read_time_;
  } consistency_selector_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class ListDocumentsResponse :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.ListDocumentsResponse) */ {
 public:
  ListDocumentsResponse();
  virtual ~ListDocumentsResponse();

  ListDocumentsResponse(const ListDocumentsResponse& from);
  ListDocumentsResponse(ListDocumentsResponse&& from) noexcept
    : ListDocumentsResponse() {
    *this = ::std::move(from);
  }

  inline ListDocumentsResponse& operator=(const ListDocumentsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListDocumentsResponse& operator=(ListDocumentsResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ListDocumentsResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ListDocumentsResponse* internal_default_instance() {
    return reinterpret_cast<const ListDocumentsResponse*>(
               &_ListDocumentsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(ListDocumentsResponse& a, ListDocumentsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ListDocumentsResponse* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ListDocumentsResponse* New() const final {
    return CreateMaybeMessage<ListDocumentsResponse>(nullptr);
  }

  ListDocumentsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ListDocumentsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ListDocumentsResponse& from);
  void MergeFrom(const ListDocumentsResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ListDocumentsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.ListDocumentsResponse";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDocumentsFieldNumber = 1,
    kNextPageTokenFieldNumber = 2,
  };
  // repeated .google.firestore.v1.Document documents = 1;
  int documents_size() const;
  private:
  int _internal_documents_size() const;
  public:
  void clear_documents();
  ::google::firestore::v1::Document* mutable_documents(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Document >*
      mutable_documents();
  private:
  const ::google::firestore::v1::Document& _internal_documents(int index) const;
  ::google::firestore::v1::Document* _internal_add_documents();
  public:
  const ::google::firestore::v1::Document& documents(int index) const;
  ::google::firestore::v1::Document* add_documents();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Document >&
      documents() const;

  // string next_page_token = 2;
  void clear_next_page_token();
  const std::string& next_page_token() const;
  void set_next_page_token(const std::string& value);
  void set_next_page_token(std::string&& value);
  void set_next_page_token(const char* value);
  void set_next_page_token(const char* value, size_t size);
  std::string* mutable_next_page_token();
  std::string* release_next_page_token();
  void set_allocated_next_page_token(std::string* next_page_token);
  private:
  const std::string& _internal_next_page_token() const;
  void _internal_set_next_page_token(const std::string& value);
  std::string* _internal_mutable_next_page_token();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.ListDocumentsResponse)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Document > documents_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr next_page_token_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class CreateDocumentRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.CreateDocumentRequest) */ {
 public:
  CreateDocumentRequest();
  virtual ~CreateDocumentRequest();

  CreateDocumentRequest(const CreateDocumentRequest& from);
  CreateDocumentRequest(CreateDocumentRequest&& from) noexcept
    : CreateDocumentRequest() {
    *this = ::std::move(from);
  }

  inline CreateDocumentRequest& operator=(const CreateDocumentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CreateDocumentRequest& operator=(CreateDocumentRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const CreateDocumentRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CreateDocumentRequest* internal_default_instance() {
    return reinterpret_cast<const CreateDocumentRequest*>(
               &_CreateDocumentRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(CreateDocumentRequest& a, CreateDocumentRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CreateDocumentRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CreateDocumentRequest* New() const final {
    return CreateMaybeMessage<CreateDocumentRequest>(nullptr);
  }

  CreateDocumentRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CreateDocumentRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CreateDocumentRequest& from);
  void MergeFrom(const CreateDocumentRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CreateDocumentRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.CreateDocumentRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kParentFieldNumber = 1,
    kCollectionIdFieldNumber = 2,
    kDocumentIdFieldNumber = 3,
    kDocumentFieldNumber = 4,
    kMaskFieldNumber = 5,
  };
  // string parent = 1;
  void clear_parent();
  const std::string& parent() const;
  void set_parent(const std::string& value);
  void set_parent(std::string&& value);
  void set_parent(const char* value);
  void set_parent(const char* value, size_t size);
  std::string* mutable_parent();
  std::string* release_parent();
  void set_allocated_parent(std::string* parent);
  private:
  const std::string& _internal_parent() const;
  void _internal_set_parent(const std::string& value);
  std::string* _internal_mutable_parent();
  public:

  // string collection_id = 2;
  void clear_collection_id();
  const std::string& collection_id() const;
  void set_collection_id(const std::string& value);
  void set_collection_id(std::string&& value);
  void set_collection_id(const char* value);
  void set_collection_id(const char* value, size_t size);
  std::string* mutable_collection_id();
  std::string* release_collection_id();
  void set_allocated_collection_id(std::string* collection_id);
  private:
  const std::string& _internal_collection_id() const;
  void _internal_set_collection_id(const std::string& value);
  std::string* _internal_mutable_collection_id();
  public:

  // string document_id = 3;
  void clear_document_id();
  const std::string& document_id() const;
  void set_document_id(const std::string& value);
  void set_document_id(std::string&& value);
  void set_document_id(const char* value);
  void set_document_id(const char* value, size_t size);
  std::string* mutable_document_id();
  std::string* release_document_id();
  void set_allocated_document_id(std::string* document_id);
  private:
  const std::string& _internal_document_id() const;
  void _internal_set_document_id(const std::string& value);
  std::string* _internal_mutable_document_id();
  public:

  // .google.firestore.v1.Document document = 4;
  bool has_document() const;
  private:
  bool _internal_has_document() const;
  public:
  void clear_document();
  const ::google::firestore::v1::Document& document() const;
  ::google::firestore::v1::Document* release_document();
  ::google::firestore::v1::Document* mutable_document();
  void set_allocated_document(::google::firestore::v1::Document* document);
  private:
  const ::google::firestore::v1::Document& _internal_document() const;
  ::google::firestore::v1::Document* _internal_mutable_document();
  public:

  // .google.firestore.v1.DocumentMask mask = 5;
  bool has_mask() const;
  private:
  bool _internal_has_mask() const;
  public:
  void clear_mask();
  const ::google::firestore::v1::DocumentMask& mask() const;
  ::google::firestore::v1::DocumentMask* release_mask();
  ::google::firestore::v1::DocumentMask* mutable_mask();
  void set_allocated_mask(::google::firestore::v1::DocumentMask* mask);
  private:
  const ::google::firestore::v1::DocumentMask& _internal_mask() const;
  ::google::firestore::v1::DocumentMask* _internal_mutable_mask();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.CreateDocumentRequest)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr parent_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr collection_id_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr document_id_;
  ::google::firestore::v1::Document* document_;
  ::google::firestore::v1::DocumentMask* mask_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class UpdateDocumentRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.UpdateDocumentRequest) */ {
 public:
  UpdateDocumentRequest();
  virtual ~UpdateDocumentRequest();

  UpdateDocumentRequest(const UpdateDocumentRequest& from);
  UpdateDocumentRequest(UpdateDocumentRequest&& from) noexcept
    : UpdateDocumentRequest() {
    *this = ::std::move(from);
  }

  inline UpdateDocumentRequest& operator=(const UpdateDocumentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateDocumentRequest& operator=(UpdateDocumentRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UpdateDocumentRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const UpdateDocumentRequest* internal_default_instance() {
    return reinterpret_cast<const UpdateDocumentRequest*>(
               &_UpdateDocumentRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(UpdateDocumentRequest& a, UpdateDocumentRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(UpdateDocumentRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline UpdateDocumentRequest* New() const final {
    return CreateMaybeMessage<UpdateDocumentRequest>(nullptr);
  }

  UpdateDocumentRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<UpdateDocumentRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const UpdateDocumentRequest& from);
  void MergeFrom(const UpdateDocumentRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UpdateDocumentRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.UpdateDocumentRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDocumentFieldNumber = 1,
    kUpdateMaskFieldNumber = 2,
    kMaskFieldNumber = 3,
    kCurrentDocumentFieldNumber = 4,
  };
  // .google.firestore.v1.Document document = 1;
  bool has_document() const;
  private:
  bool _internal_has_document() const;
  public:
  void clear_document();
  const ::google::firestore::v1::Document& document() const;
  ::google::firestore::v1::Document* release_document();
  ::google::firestore::v1::Document* mutable_document();
  void set_allocated_document(::google::firestore::v1::Document* document);
  private:
  const ::google::firestore::v1::Document& _internal_document() const;
  ::google::firestore::v1::Document* _internal_mutable_document();
  public:

  // .google.firestore.v1.DocumentMask update_mask = 2;
  bool has_update_mask() const;
  private:
  bool _internal_has_update_mask() const;
  public:
  void clear_update_mask();
  const ::google::firestore::v1::DocumentMask& update_mask() const;
  ::google::firestore::v1::DocumentMask* release_update_mask();
  ::google::firestore::v1::DocumentMask* mutable_update_mask();
  void set_allocated_update_mask(::google::firestore::v1::DocumentMask* update_mask);
  private:
  const ::google::firestore::v1::DocumentMask& _internal_update_mask() const;
  ::google::firestore::v1::DocumentMask* _internal_mutable_update_mask();
  public:

  // .google.firestore.v1.DocumentMask mask = 3;
  bool has_mask() const;
  private:
  bool _internal_has_mask() const;
  public:
  void clear_mask();
  const ::google::firestore::v1::DocumentMask& mask() const;
  ::google::firestore::v1::DocumentMask* release_mask();
  ::google::firestore::v1::DocumentMask* mutable_mask();
  void set_allocated_mask(::google::firestore::v1::DocumentMask* mask);
  private:
  const ::google::firestore::v1::DocumentMask& _internal_mask() const;
  ::google::firestore::v1::DocumentMask* _internal_mutable_mask();
  public:

  // .google.firestore.v1.Precondition current_document = 4;
  bool has_current_document() const;
  private:
  bool _internal_has_current_document() const;
  public:
  void clear_current_document();
  const ::google::firestore::v1::Precondition& current_document() const;
  ::google::firestore::v1::Precondition* release_current_document();
  ::google::firestore::v1::Precondition* mutable_current_document();
  void set_allocated_current_document(::google::firestore::v1::Precondition* current_document);
  private:
  const ::google::firestore::v1::Precondition& _internal_current_document() const;
  ::google::firestore::v1::Precondition* _internal_mutable_current_document();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.UpdateDocumentRequest)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::firestore::v1::Document* document_;
  ::google::firestore::v1::DocumentMask* update_mask_;
  ::google::firestore::v1::DocumentMask* mask_;
  ::google::firestore::v1::Precondition* current_document_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class DeleteDocumentRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.DeleteDocumentRequest) */ {
 public:
  DeleteDocumentRequest();
  virtual ~DeleteDocumentRequest();

  DeleteDocumentRequest(const DeleteDocumentRequest& from);
  DeleteDocumentRequest(DeleteDocumentRequest&& from) noexcept
    : DeleteDocumentRequest() {
    *this = ::std::move(from);
  }

  inline DeleteDocumentRequest& operator=(const DeleteDocumentRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteDocumentRequest& operator=(DeleteDocumentRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const DeleteDocumentRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const DeleteDocumentRequest* internal_default_instance() {
    return reinterpret_cast<const DeleteDocumentRequest*>(
               &_DeleteDocumentRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(DeleteDocumentRequest& a, DeleteDocumentRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(DeleteDocumentRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline DeleteDocumentRequest* New() const final {
    return CreateMaybeMessage<DeleteDocumentRequest>(nullptr);
  }

  DeleteDocumentRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<DeleteDocumentRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const DeleteDocumentRequest& from);
  void MergeFrom(const DeleteDocumentRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DeleteDocumentRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.DeleteDocumentRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kNameFieldNumber = 1,
    kCurrentDocumentFieldNumber = 2,
  };
  // string name = 1;
  void clear_name();
  const std::string& name() const;
  void set_name(const std::string& value);
  void set_name(std::string&& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  std::string* mutable_name();
  std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .google.firestore.v1.Precondition current_document = 2;
  bool has_current_document() const;
  private:
  bool _internal_has_current_document() const;
  public:
  void clear_current_document();
  const ::google::firestore::v1::Precondition& current_document() const;
  ::google::firestore::v1::Precondition* release_current_document();
  ::google::firestore::v1::Precondition* mutable_current_document();
  void set_allocated_current_document(::google::firestore::v1::Precondition* current_document);
  private:
  const ::google::firestore::v1::Precondition& _internal_current_document() const;
  ::google::firestore::v1::Precondition* _internal_mutable_current_document();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.DeleteDocumentRequest)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
  ::google::firestore::v1::Precondition* current_document_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class BatchGetDocumentsRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.BatchGetDocumentsRequest) */ {
 public:
  BatchGetDocumentsRequest();
  virtual ~BatchGetDocumentsRequest();

  BatchGetDocumentsRequest(const BatchGetDocumentsRequest& from);
  BatchGetDocumentsRequest(BatchGetDocumentsRequest&& from) noexcept
    : BatchGetDocumentsRequest() {
    *this = ::std::move(from);
  }

  inline BatchGetDocumentsRequest& operator=(const BatchGetDocumentsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline BatchGetDocumentsRequest& operator=(BatchGetDocumentsRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const BatchGetDocumentsRequest& default_instance();

  enum ConsistencySelectorCase {
    kTransaction = 4,
    kNewTransaction = 5,
    kReadTime = 7,
    CONSISTENCY_SELECTOR_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const BatchGetDocumentsRequest* internal_default_instance() {
    return reinterpret_cast<const BatchGetDocumentsRequest*>(
               &_BatchGetDocumentsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(BatchGetDocumentsRequest& a, BatchGetDocumentsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(BatchGetDocumentsRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline BatchGetDocumentsRequest* New() const final {
    return CreateMaybeMessage<BatchGetDocumentsRequest>(nullptr);
  }

  BatchGetDocumentsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<BatchGetDocumentsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const BatchGetDocumentsRequest& from);
  void MergeFrom(const BatchGetDocumentsRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BatchGetDocumentsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.BatchGetDocumentsRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDocumentsFieldNumber = 2,
    kDatabaseFieldNumber = 1,
    kMaskFieldNumber = 3,
    kTransactionFieldNumber = 4,
    kNewTransactionFieldNumber = 5,
    kReadTimeFieldNumber = 7,
  };
  // repeated string documents = 2;
  int documents_size() const;
  private:
  int _internal_documents_size() const;
  public:
  void clear_documents();
  const std::string& documents(int index) const;
  std::string* mutable_documents(int index);
  void set_documents(int index, const std::string& value);
  void set_documents(int index, std::string&& value);
  void set_documents(int index, const char* value);
  void set_documents(int index, const char* value, size_t size);
  std::string* add_documents();
  void add_documents(const std::string& value);
  void add_documents(std::string&& value);
  void add_documents(const char* value);
  void add_documents(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& documents() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_documents();
  private:
  const std::string& _internal_documents(int index) const;
  std::string* _internal_add_documents();
  public:

  // string database = 1;
  void clear_database();
  const std::string& database() const;
  void set_database(const std::string& value);
  void set_database(std::string&& value);
  void set_database(const char* value);
  void set_database(const char* value, size_t size);
  std::string* mutable_database();
  std::string* release_database();
  void set_allocated_database(std::string* database);
  private:
  const std::string& _internal_database() const;
  void _internal_set_database(const std::string& value);
  std::string* _internal_mutable_database();
  public:

  // .google.firestore.v1.DocumentMask mask = 3;
  bool has_mask() const;
  private:
  bool _internal_has_mask() const;
  public:
  void clear_mask();
  const ::google::firestore::v1::DocumentMask& mask() const;
  ::google::firestore::v1::DocumentMask* release_mask();
  ::google::firestore::v1::DocumentMask* mutable_mask();
  void set_allocated_mask(::google::firestore::v1::DocumentMask* mask);
  private:
  const ::google::firestore::v1::DocumentMask& _internal_mask() const;
  ::google::firestore::v1::DocumentMask* _internal_mutable_mask();
  public:

  // bytes transaction = 4;
  private:
  bool _internal_has_transaction() const;
  public:
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // .google.firestore.v1.TransactionOptions new_transaction = 5;
  bool has_new_transaction() const;
  private:
  bool _internal_has_new_transaction() const;
  public:
  void clear_new_transaction();
  const ::google::firestore::v1::TransactionOptions& new_transaction() const;
  ::google::firestore::v1::TransactionOptions* release_new_transaction();
  ::google::firestore::v1::TransactionOptions* mutable_new_transaction();
  void set_allocated_new_transaction(::google::firestore::v1::TransactionOptions* new_transaction);
  private:
  const ::google::firestore::v1::TransactionOptions& _internal_new_transaction() const;
  ::google::firestore::v1::TransactionOptions* _internal_mutable_new_transaction();
  public:

  // .google.protobuf.Timestamp read_time = 7;
  bool has_read_time() const;
  private:
  bool _internal_has_read_time() const;
  public:
  void clear_read_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_read_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_read_time();
  void set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_read_time();
  public:

  void clear_consistency_selector();
  ConsistencySelectorCase consistency_selector_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.BatchGetDocumentsRequest)
 private:
  class _Internal;
  void set_has_transaction();
  void set_has_new_transaction();
  void set_has_read_time();

  inline bool has_consistency_selector() const;
  inline void clear_has_consistency_selector();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> documents_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr database_;
  ::google::firestore::v1::DocumentMask* mask_;
  union ConsistencySelectorUnion {
    ConsistencySelectorUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
    ::google::firestore::v1::TransactionOptions* new_transaction_;
    PROTOBUF_NAMESPACE_ID::Timestamp* read_time_;
  } consistency_selector_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class BatchGetDocumentsResponse :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.BatchGetDocumentsResponse) */ {
 public:
  BatchGetDocumentsResponse();
  virtual ~BatchGetDocumentsResponse();

  BatchGetDocumentsResponse(const BatchGetDocumentsResponse& from);
  BatchGetDocumentsResponse(BatchGetDocumentsResponse&& from) noexcept
    : BatchGetDocumentsResponse() {
    *this = ::std::move(from);
  }

  inline BatchGetDocumentsResponse& operator=(const BatchGetDocumentsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline BatchGetDocumentsResponse& operator=(BatchGetDocumentsResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const BatchGetDocumentsResponse& default_instance();

  enum ResultCase {
    kFound = 1,
    kMissing = 2,
    RESULT_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const BatchGetDocumentsResponse* internal_default_instance() {
    return reinterpret_cast<const BatchGetDocumentsResponse*>(
               &_BatchGetDocumentsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(BatchGetDocumentsResponse& a, BatchGetDocumentsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(BatchGetDocumentsResponse* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline BatchGetDocumentsResponse* New() const final {
    return CreateMaybeMessage<BatchGetDocumentsResponse>(nullptr);
  }

  BatchGetDocumentsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<BatchGetDocumentsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const BatchGetDocumentsResponse& from);
  void MergeFrom(const BatchGetDocumentsResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BatchGetDocumentsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.BatchGetDocumentsResponse";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTransactionFieldNumber = 3,
    kReadTimeFieldNumber = 4,
    kFoundFieldNumber = 1,
    kMissingFieldNumber = 2,
  };
  // bytes transaction = 3;
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // .google.protobuf.Timestamp read_time = 4;
  bool has_read_time() const;
  private:
  bool _internal_has_read_time() const;
  public:
  void clear_read_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_read_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_read_time();
  void set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_read_time();
  public:

  // .google.firestore.v1.Document found = 1;
  bool has_found() const;
  private:
  bool _internal_has_found() const;
  public:
  void clear_found();
  const ::google::firestore::v1::Document& found() const;
  ::google::firestore::v1::Document* release_found();
  ::google::firestore::v1::Document* mutable_found();
  void set_allocated_found(::google::firestore::v1::Document* found);
  private:
  const ::google::firestore::v1::Document& _internal_found() const;
  ::google::firestore::v1::Document* _internal_mutable_found();
  public:

  // string missing = 2;
  private:
  bool _internal_has_missing() const;
  public:
  void clear_missing();
  const std::string& missing() const;
  void set_missing(const std::string& value);
  void set_missing(std::string&& value);
  void set_missing(const char* value);
  void set_missing(const char* value, size_t size);
  std::string* mutable_missing();
  std::string* release_missing();
  void set_allocated_missing(std::string* missing);
  private:
  const std::string& _internal_missing() const;
  void _internal_set_missing(const std::string& value);
  std::string* _internal_mutable_missing();
  public:

  void clear_result();
  ResultCase result_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.BatchGetDocumentsResponse)
 private:
  class _Internal;
  void set_has_found();
  void set_has_missing();

  inline bool has_result() const;
  inline void clear_has_result();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
  PROTOBUF_NAMESPACE_ID::Timestamp* read_time_;
  union ResultUnion {
    ResultUnion() {}
    ::google::firestore::v1::Document* found_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr missing_;
  } result_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class BeginTransactionRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.BeginTransactionRequest) */ {
 public:
  BeginTransactionRequest();
  virtual ~BeginTransactionRequest();

  BeginTransactionRequest(const BeginTransactionRequest& from);
  BeginTransactionRequest(BeginTransactionRequest&& from) noexcept
    : BeginTransactionRequest() {
    *this = ::std::move(from);
  }

  inline BeginTransactionRequest& operator=(const BeginTransactionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline BeginTransactionRequest& operator=(BeginTransactionRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const BeginTransactionRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const BeginTransactionRequest* internal_default_instance() {
    return reinterpret_cast<const BeginTransactionRequest*>(
               &_BeginTransactionRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(BeginTransactionRequest& a, BeginTransactionRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(BeginTransactionRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline BeginTransactionRequest* New() const final {
    return CreateMaybeMessage<BeginTransactionRequest>(nullptr);
  }

  BeginTransactionRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<BeginTransactionRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const BeginTransactionRequest& from);
  void MergeFrom(const BeginTransactionRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BeginTransactionRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.BeginTransactionRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDatabaseFieldNumber = 1,
    kOptionsFieldNumber = 2,
  };
  // string database = 1;
  void clear_database();
  const std::string& database() const;
  void set_database(const std::string& value);
  void set_database(std::string&& value);
  void set_database(const char* value);
  void set_database(const char* value, size_t size);
  std::string* mutable_database();
  std::string* release_database();
  void set_allocated_database(std::string* database);
  private:
  const std::string& _internal_database() const;
  void _internal_set_database(const std::string& value);
  std::string* _internal_mutable_database();
  public:

  // .google.firestore.v1.TransactionOptions options = 2;
  bool has_options() const;
  private:
  bool _internal_has_options() const;
  public:
  void clear_options();
  const ::google::firestore::v1::TransactionOptions& options() const;
  ::google::firestore::v1::TransactionOptions* release_options();
  ::google::firestore::v1::TransactionOptions* mutable_options();
  void set_allocated_options(::google::firestore::v1::TransactionOptions* options);
  private:
  const ::google::firestore::v1::TransactionOptions& _internal_options() const;
  ::google::firestore::v1::TransactionOptions* _internal_mutable_options();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.BeginTransactionRequest)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr database_;
  ::google::firestore::v1::TransactionOptions* options_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class BeginTransactionResponse :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.BeginTransactionResponse) */ {
 public:
  BeginTransactionResponse();
  virtual ~BeginTransactionResponse();

  BeginTransactionResponse(const BeginTransactionResponse& from);
  BeginTransactionResponse(BeginTransactionResponse&& from) noexcept
    : BeginTransactionResponse() {
    *this = ::std::move(from);
  }

  inline BeginTransactionResponse& operator=(const BeginTransactionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline BeginTransactionResponse& operator=(BeginTransactionResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const BeginTransactionResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const BeginTransactionResponse* internal_default_instance() {
    return reinterpret_cast<const BeginTransactionResponse*>(
               &_BeginTransactionResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(BeginTransactionResponse& a, BeginTransactionResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(BeginTransactionResponse* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline BeginTransactionResponse* New() const final {
    return CreateMaybeMessage<BeginTransactionResponse>(nullptr);
  }

  BeginTransactionResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<BeginTransactionResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const BeginTransactionResponse& from);
  void MergeFrom(const BeginTransactionResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BeginTransactionResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.BeginTransactionResponse";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTransactionFieldNumber = 1,
  };
  // bytes transaction = 1;
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.BeginTransactionResponse)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class CommitRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.CommitRequest) */ {
 public:
  CommitRequest();
  virtual ~CommitRequest();

  CommitRequest(const CommitRequest& from);
  CommitRequest(CommitRequest&& from) noexcept
    : CommitRequest() {
    *this = ::std::move(from);
  }

  inline CommitRequest& operator=(const CommitRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CommitRequest& operator=(CommitRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const CommitRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CommitRequest* internal_default_instance() {
    return reinterpret_cast<const CommitRequest*>(
               &_CommitRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(CommitRequest& a, CommitRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(CommitRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CommitRequest* New() const final {
    return CreateMaybeMessage<CommitRequest>(nullptr);
  }

  CommitRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CommitRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CommitRequest& from);
  void MergeFrom(const CommitRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CommitRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.CommitRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kWritesFieldNumber = 2,
    kDatabaseFieldNumber = 1,
    kTransactionFieldNumber = 3,
  };
  // repeated .google.firestore.v1.Write writes = 2;
  int writes_size() const;
  private:
  int _internal_writes_size() const;
  public:
  void clear_writes();
  ::google::firestore::v1::Write* mutable_writes(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >*
      mutable_writes();
  private:
  const ::google::firestore::v1::Write& _internal_writes(int index) const;
  ::google::firestore::v1::Write* _internal_add_writes();
  public:
  const ::google::firestore::v1::Write& writes(int index) const;
  ::google::firestore::v1::Write* add_writes();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >&
      writes() const;

  // string database = 1;
  void clear_database();
  const std::string& database() const;
  void set_database(const std::string& value);
  void set_database(std::string&& value);
  void set_database(const char* value);
  void set_database(const char* value, size_t size);
  std::string* mutable_database();
  std::string* release_database();
  void set_allocated_database(std::string* database);
  private:
  const std::string& _internal_database() const;
  void _internal_set_database(const std::string& value);
  std::string* _internal_mutable_database();
  public:

  // bytes transaction = 3;
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.CommitRequest)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write > writes_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr database_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class CommitResponse :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.CommitResponse) */ {
 public:
  CommitResponse();
  virtual ~CommitResponse();

  CommitResponse(const CommitResponse& from);
  CommitResponse(CommitResponse&& from) noexcept
    : CommitResponse() {
    *this = ::std::move(from);
  }

  inline CommitResponse& operator=(const CommitResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline CommitResponse& operator=(CommitResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const CommitResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CommitResponse* internal_default_instance() {
    return reinterpret_cast<const CommitResponse*>(
               &_CommitResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(CommitResponse& a, CommitResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(CommitResponse* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline CommitResponse* New() const final {
    return CreateMaybeMessage<CommitResponse>(nullptr);
  }

  CommitResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<CommitResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const CommitResponse& from);
  void MergeFrom(const CommitResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CommitResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.CommitResponse";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kWriteResultsFieldNumber = 1,
    kCommitTimeFieldNumber = 2,
  };
  // repeated .google.firestore.v1.WriteResult write_results = 1;
  int write_results_size() const;
  private:
  int _internal_write_results_size() const;
  public:
  void clear_write_results();
  ::google::firestore::v1::WriteResult* mutable_write_results(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult >*
      mutable_write_results();
  private:
  const ::google::firestore::v1::WriteResult& _internal_write_results(int index) const;
  ::google::firestore::v1::WriteResult* _internal_add_write_results();
  public:
  const ::google::firestore::v1::WriteResult& write_results(int index) const;
  ::google::firestore::v1::WriteResult* add_write_results();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult >&
      write_results() const;

  // .google.protobuf.Timestamp commit_time = 2;
  bool has_commit_time() const;
  private:
  bool _internal_has_commit_time() const;
  public:
  void clear_commit_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& commit_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_commit_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_commit_time();
  void set_allocated_commit_time(PROTOBUF_NAMESPACE_ID::Timestamp* commit_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_commit_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_commit_time();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.CommitResponse)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult > write_results_;
  PROTOBUF_NAMESPACE_ID::Timestamp* commit_time_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class RollbackRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.RollbackRequest) */ {
 public:
  RollbackRequest();
  virtual ~RollbackRequest();

  RollbackRequest(const RollbackRequest& from);
  RollbackRequest(RollbackRequest&& from) noexcept
    : RollbackRequest() {
    *this = ::std::move(from);
  }

  inline RollbackRequest& operator=(const RollbackRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline RollbackRequest& operator=(RollbackRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RollbackRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RollbackRequest* internal_default_instance() {
    return reinterpret_cast<const RollbackRequest*>(
               &_RollbackRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(RollbackRequest& a, RollbackRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(RollbackRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RollbackRequest* New() const final {
    return CreateMaybeMessage<RollbackRequest>(nullptr);
  }

  RollbackRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RollbackRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RollbackRequest& from);
  void MergeFrom(const RollbackRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RollbackRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.RollbackRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDatabaseFieldNumber = 1,
    kTransactionFieldNumber = 2,
  };
  // string database = 1;
  void clear_database();
  const std::string& database() const;
  void set_database(const std::string& value);
  void set_database(std::string&& value);
  void set_database(const char* value);
  void set_database(const char* value, size_t size);
  std::string* mutable_database();
  std::string* release_database();
  void set_allocated_database(std::string* database);
  private:
  const std::string& _internal_database() const;
  void _internal_set_database(const std::string& value);
  std::string* _internal_mutable_database();
  public:

  // bytes transaction = 2;
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.RollbackRequest)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr database_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class RunQueryRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.RunQueryRequest) */ {
 public:
  RunQueryRequest();
  virtual ~RunQueryRequest();

  RunQueryRequest(const RunQueryRequest& from);
  RunQueryRequest(RunQueryRequest&& from) noexcept
    : RunQueryRequest() {
    *this = ::std::move(from);
  }

  inline RunQueryRequest& operator=(const RunQueryRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline RunQueryRequest& operator=(RunQueryRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RunQueryRequest& default_instance();

  enum QueryTypeCase {
    kStructuredQuery = 2,
    QUERY_TYPE_NOT_SET = 0,
  };

  enum ConsistencySelectorCase {
    kTransaction = 5,
    kNewTransaction = 6,
    kReadTime = 7,
    CONSISTENCY_SELECTOR_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RunQueryRequest* internal_default_instance() {
    return reinterpret_cast<const RunQueryRequest*>(
               &_RunQueryRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(RunQueryRequest& a, RunQueryRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(RunQueryRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RunQueryRequest* New() const final {
    return CreateMaybeMessage<RunQueryRequest>(nullptr);
  }

  RunQueryRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RunQueryRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RunQueryRequest& from);
  void MergeFrom(const RunQueryRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RunQueryRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.RunQueryRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kParentFieldNumber = 1,
    kStructuredQueryFieldNumber = 2,
    kTransactionFieldNumber = 5,
    kNewTransactionFieldNumber = 6,
    kReadTimeFieldNumber = 7,
  };
  // string parent = 1;
  void clear_parent();
  const std::string& parent() const;
  void set_parent(const std::string& value);
  void set_parent(std::string&& value);
  void set_parent(const char* value);
  void set_parent(const char* value, size_t size);
  std::string* mutable_parent();
  std::string* release_parent();
  void set_allocated_parent(std::string* parent);
  private:
  const std::string& _internal_parent() const;
  void _internal_set_parent(const std::string& value);
  std::string* _internal_mutable_parent();
  public:

  // .google.firestore.v1.StructuredQuery structured_query = 2;
  bool has_structured_query() const;
  private:
  bool _internal_has_structured_query() const;
  public:
  void clear_structured_query();
  const ::google::firestore::v1::StructuredQuery& structured_query() const;
  ::google::firestore::v1::StructuredQuery* release_structured_query();
  ::google::firestore::v1::StructuredQuery* mutable_structured_query();
  void set_allocated_structured_query(::google::firestore::v1::StructuredQuery* structured_query);
  private:
  const ::google::firestore::v1::StructuredQuery& _internal_structured_query() const;
  ::google::firestore::v1::StructuredQuery* _internal_mutable_structured_query();
  public:

  // bytes transaction = 5;
  private:
  bool _internal_has_transaction() const;
  public:
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // .google.firestore.v1.TransactionOptions new_transaction = 6;
  bool has_new_transaction() const;
  private:
  bool _internal_has_new_transaction() const;
  public:
  void clear_new_transaction();
  const ::google::firestore::v1::TransactionOptions& new_transaction() const;
  ::google::firestore::v1::TransactionOptions* release_new_transaction();
  ::google::firestore::v1::TransactionOptions* mutable_new_transaction();
  void set_allocated_new_transaction(::google::firestore::v1::TransactionOptions* new_transaction);
  private:
  const ::google::firestore::v1::TransactionOptions& _internal_new_transaction() const;
  ::google::firestore::v1::TransactionOptions* _internal_mutable_new_transaction();
  public:

  // .google.protobuf.Timestamp read_time = 7;
  bool has_read_time() const;
  private:
  bool _internal_has_read_time() const;
  public:
  void clear_read_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_read_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_read_time();
  void set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_read_time();
  public:

  void clear_query_type();
  QueryTypeCase query_type_case() const;
  void clear_consistency_selector();
  ConsistencySelectorCase consistency_selector_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.RunQueryRequest)
 private:
  class _Internal;
  void set_has_structured_query();
  void set_has_transaction();
  void set_has_new_transaction();
  void set_has_read_time();

  inline bool has_query_type() const;
  inline void clear_has_query_type();

  inline bool has_consistency_selector() const;
  inline void clear_has_consistency_selector();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr parent_;
  union QueryTypeUnion {
    QueryTypeUnion() {}
    ::google::firestore::v1::StructuredQuery* structured_query_;
  } query_type_;
  union ConsistencySelectorUnion {
    ConsistencySelectorUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
    ::google::firestore::v1::TransactionOptions* new_transaction_;
    PROTOBUF_NAMESPACE_ID::Timestamp* read_time_;
  } consistency_selector_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[2];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class RunQueryResponse :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.RunQueryResponse) */ {
 public:
  RunQueryResponse();
  virtual ~RunQueryResponse();

  RunQueryResponse(const RunQueryResponse& from);
  RunQueryResponse(RunQueryResponse&& from) noexcept
    : RunQueryResponse() {
    *this = ::std::move(from);
  }

  inline RunQueryResponse& operator=(const RunQueryResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline RunQueryResponse& operator=(RunQueryResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RunQueryResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RunQueryResponse* internal_default_instance() {
    return reinterpret_cast<const RunQueryResponse*>(
               &_RunQueryResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(RunQueryResponse& a, RunQueryResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(RunQueryResponse* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline RunQueryResponse* New() const final {
    return CreateMaybeMessage<RunQueryResponse>(nullptr);
  }

  RunQueryResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<RunQueryResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const RunQueryResponse& from);
  void MergeFrom(const RunQueryResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RunQueryResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.RunQueryResponse";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTransactionFieldNumber = 2,
    kDocumentFieldNumber = 1,
    kReadTimeFieldNumber = 3,
    kSkippedResultsFieldNumber = 4,
  };
  // bytes transaction = 2;
  void clear_transaction();
  const std::string& transaction() const;
  void set_transaction(const std::string& value);
  void set_transaction(std::string&& value);
  void set_transaction(const char* value);
  void set_transaction(const void* value, size_t size);
  std::string* mutable_transaction();
  std::string* release_transaction();
  void set_allocated_transaction(std::string* transaction);
  private:
  const std::string& _internal_transaction() const;
  void _internal_set_transaction(const std::string& value);
  std::string* _internal_mutable_transaction();
  public:

  // .google.firestore.v1.Document document = 1;
  bool has_document() const;
  private:
  bool _internal_has_document() const;
  public:
  void clear_document();
  const ::google::firestore::v1::Document& document() const;
  ::google::firestore::v1::Document* release_document();
  ::google::firestore::v1::Document* mutable_document();
  void set_allocated_document(::google::firestore::v1::Document* document);
  private:
  const ::google::firestore::v1::Document& _internal_document() const;
  ::google::firestore::v1::Document* _internal_mutable_document();
  public:

  // .google.protobuf.Timestamp read_time = 3;
  bool has_read_time() const;
  private:
  bool _internal_has_read_time() const;
  public:
  void clear_read_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_read_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_read_time();
  void set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_read_time();
  public:

  // int32 skipped_results = 4;
  void clear_skipped_results();
  ::PROTOBUF_NAMESPACE_ID::int32 skipped_results() const;
  void set_skipped_results(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_skipped_results() const;
  void _internal_set_skipped_results(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.RunQueryResponse)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr transaction_;
  ::google::firestore::v1::Document* document_;
  PROTOBUF_NAMESPACE_ID::Timestamp* read_time_;
  ::PROTOBUF_NAMESPACE_ID::int32 skipped_results_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class WriteRequest_LabelsEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<WriteRequest_LabelsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<WriteRequest_LabelsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  WriteRequest_LabelsEntry_DoNotUse();
  WriteRequest_LabelsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const WriteRequest_LabelsEntry_DoNotUse& other);
  static const WriteRequest_LabelsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const WriteRequest_LabelsEntry_DoNotUse*>(&_WriteRequest_LabelsEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "google.firestore.v1.WriteRequest.LabelsEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "google.firestore.v1.WriteRequest.LabelsEntry.value");
 }
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final;
  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[15];
  }

  public:
};

// -------------------------------------------------------------------

class WriteRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.WriteRequest) */ {
 public:
  WriteRequest();
  virtual ~WriteRequest();

  WriteRequest(const WriteRequest& from);
  WriteRequest(WriteRequest&& from) noexcept
    : WriteRequest() {
    *this = ::std::move(from);
  }

  inline WriteRequest& operator=(const WriteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline WriteRequest& operator=(WriteRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const WriteRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const WriteRequest* internal_default_instance() {
    return reinterpret_cast<const WriteRequest*>(
               &_WriteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

  friend void swap(WriteRequest& a, WriteRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(WriteRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline WriteRequest* New() const final {
    return CreateMaybeMessage<WriteRequest>(nullptr);
  }

  WriteRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<WriteRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const WriteRequest& from);
  void MergeFrom(const WriteRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WriteRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.WriteRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  enum : int {
    kWritesFieldNumber = 3,
    kLabelsFieldNumber = 5,
    kDatabaseFieldNumber = 1,
    kStreamIdFieldNumber = 2,
    kStreamTokenFieldNumber = 4,
  };
  // repeated .google.firestore.v1.Write writes = 3;
  int writes_size() const;
  private:
  int _internal_writes_size() const;
  public:
  void clear_writes();
  ::google::firestore::v1::Write* mutable_writes(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >*
      mutable_writes();
  private:
  const ::google::firestore::v1::Write& _internal_writes(int index) const;
  ::google::firestore::v1::Write* _internal_add_writes();
  public:
  const ::google::firestore::v1::Write& writes(int index) const;
  ::google::firestore::v1::Write* add_writes();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >&
      writes() const;

  // map<string, string> labels = 5;
  int labels_size() const;
  private:
  int _internal_labels_size() const;
  public:
  void clear_labels();
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      _internal_labels() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      _internal_mutable_labels();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      labels() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      mutable_labels();

  // string database = 1;
  void clear_database();
  const std::string& database() const;
  void set_database(const std::string& value);
  void set_database(std::string&& value);
  void set_database(const char* value);
  void set_database(const char* value, size_t size);
  std::string* mutable_database();
  std::string* release_database();
  void set_allocated_database(std::string* database);
  private:
  const std::string& _internal_database() const;
  void _internal_set_database(const std::string& value);
  std::string* _internal_mutable_database();
  public:

  // string stream_id = 2;
  void clear_stream_id();
  const std::string& stream_id() const;
  void set_stream_id(const std::string& value);
  void set_stream_id(std::string&& value);
  void set_stream_id(const char* value);
  void set_stream_id(const char* value, size_t size);
  std::string* mutable_stream_id();
  std::string* release_stream_id();
  void set_allocated_stream_id(std::string* stream_id);
  private:
  const std::string& _internal_stream_id() const;
  void _internal_set_stream_id(const std::string& value);
  std::string* _internal_mutable_stream_id();
  public:

  // bytes stream_token = 4;
  void clear_stream_token();
  const std::string& stream_token() const;
  void set_stream_token(const std::string& value);
  void set_stream_token(std::string&& value);
  void set_stream_token(const char* value);
  void set_stream_token(const void* value, size_t size);
  std::string* mutable_stream_token();
  std::string* release_stream_token();
  void set_allocated_stream_token(std::string* stream_token);
  private:
  const std::string& _internal_stream_token() const;
  void _internal_set_stream_token(const std::string& value);
  std::string* _internal_mutable_stream_token();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.WriteRequest)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write > writes_;
  ::PROTOBUF_NAMESPACE_ID::internal::MapField<
      WriteRequest_LabelsEntry_DoNotUse,
      std::string, std::string,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
      0 > labels_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr database_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr stream_id_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr stream_token_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class WriteResponse :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.WriteResponse) */ {
 public:
  WriteResponse();
  virtual ~WriteResponse();

  WriteResponse(const WriteResponse& from);
  WriteResponse(WriteResponse&& from) noexcept
    : WriteResponse() {
    *this = ::std::move(from);
  }

  inline WriteResponse& operator=(const WriteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline WriteResponse& operator=(WriteResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const WriteResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const WriteResponse* internal_default_instance() {
    return reinterpret_cast<const WriteResponse*>(
               &_WriteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

  friend void swap(WriteResponse& a, WriteResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(WriteResponse* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline WriteResponse* New() const final {
    return CreateMaybeMessage<WriteResponse>(nullptr);
  }

  WriteResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<WriteResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const WriteResponse& from);
  void MergeFrom(const WriteResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(WriteResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.WriteResponse";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kWriteResultsFieldNumber = 3,
    kStreamIdFieldNumber = 1,
    kStreamTokenFieldNumber = 2,
    kCommitTimeFieldNumber = 4,
  };
  // repeated .google.firestore.v1.WriteResult write_results = 3;
  int write_results_size() const;
  private:
  int _internal_write_results_size() const;
  public:
  void clear_write_results();
  ::google::firestore::v1::WriteResult* mutable_write_results(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult >*
      mutable_write_results();
  private:
  const ::google::firestore::v1::WriteResult& _internal_write_results(int index) const;
  ::google::firestore::v1::WriteResult* _internal_add_write_results();
  public:
  const ::google::firestore::v1::WriteResult& write_results(int index) const;
  ::google::firestore::v1::WriteResult* add_write_results();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult >&
      write_results() const;

  // string stream_id = 1;
  void clear_stream_id();
  const std::string& stream_id() const;
  void set_stream_id(const std::string& value);
  void set_stream_id(std::string&& value);
  void set_stream_id(const char* value);
  void set_stream_id(const char* value, size_t size);
  std::string* mutable_stream_id();
  std::string* release_stream_id();
  void set_allocated_stream_id(std::string* stream_id);
  private:
  const std::string& _internal_stream_id() const;
  void _internal_set_stream_id(const std::string& value);
  std::string* _internal_mutable_stream_id();
  public:

  // bytes stream_token = 2;
  void clear_stream_token();
  const std::string& stream_token() const;
  void set_stream_token(const std::string& value);
  void set_stream_token(std::string&& value);
  void set_stream_token(const char* value);
  void set_stream_token(const void* value, size_t size);
  std::string* mutable_stream_token();
  std::string* release_stream_token();
  void set_allocated_stream_token(std::string* stream_token);
  private:
  const std::string& _internal_stream_token() const;
  void _internal_set_stream_token(const std::string& value);
  std::string* _internal_mutable_stream_token();
  public:

  // .google.protobuf.Timestamp commit_time = 4;
  bool has_commit_time() const;
  private:
  bool _internal_has_commit_time() const;
  public:
  void clear_commit_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& commit_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_commit_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_commit_time();
  void set_allocated_commit_time(PROTOBUF_NAMESPACE_ID::Timestamp* commit_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_commit_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_commit_time();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.WriteResponse)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult > write_results_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr stream_id_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr stream_token_;
  PROTOBUF_NAMESPACE_ID::Timestamp* commit_time_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class ListenRequest_LabelsEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<ListenRequest_LabelsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<ListenRequest_LabelsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  ListenRequest_LabelsEntry_DoNotUse();
  ListenRequest_LabelsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const ListenRequest_LabelsEntry_DoNotUse& other);
  static const ListenRequest_LabelsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const ListenRequest_LabelsEntry_DoNotUse*>(&_ListenRequest_LabelsEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "google.firestore.v1.ListenRequest.LabelsEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "google.firestore.v1.ListenRequest.LabelsEntry.value");
 }
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final;
  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[18];
  }

  public:
};

// -------------------------------------------------------------------

class ListenRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.ListenRequest) */ {
 public:
  ListenRequest();
  virtual ~ListenRequest();

  ListenRequest(const ListenRequest& from);
  ListenRequest(ListenRequest&& from) noexcept
    : ListenRequest() {
    *this = ::std::move(from);
  }

  inline ListenRequest& operator=(const ListenRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListenRequest& operator=(ListenRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ListenRequest& default_instance();

  enum TargetChangeCase {
    kAddTarget = 2,
    kRemoveTarget = 3,
    TARGET_CHANGE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ListenRequest* internal_default_instance() {
    return reinterpret_cast<const ListenRequest*>(
               &_ListenRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

  friend void swap(ListenRequest& a, ListenRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ListenRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ListenRequest* New() const final {
    return CreateMaybeMessage<ListenRequest>(nullptr);
  }

  ListenRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ListenRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ListenRequest& from);
  void MergeFrom(const ListenRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ListenRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.ListenRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------


  // accessors -------------------------------------------------------

  enum : int {
    kLabelsFieldNumber = 4,
    kDatabaseFieldNumber = 1,
    kAddTargetFieldNumber = 2,
    kRemoveTargetFieldNumber = 3,
  };
  // map<string, string> labels = 4;
  int labels_size() const;
  private:
  int _internal_labels_size() const;
  public:
  void clear_labels();
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      _internal_labels() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      _internal_mutable_labels();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      labels() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      mutable_labels();

  // string database = 1;
  void clear_database();
  const std::string& database() const;
  void set_database(const std::string& value);
  void set_database(std::string&& value);
  void set_database(const char* value);
  void set_database(const char* value, size_t size);
  std::string* mutable_database();
  std::string* release_database();
  void set_allocated_database(std::string* database);
  private:
  const std::string& _internal_database() const;
  void _internal_set_database(const std::string& value);
  std::string* _internal_mutable_database();
  public:

  // .google.firestore.v1.Target add_target = 2;
  bool has_add_target() const;
  private:
  bool _internal_has_add_target() const;
  public:
  void clear_add_target();
  const ::google::firestore::v1::Target& add_target() const;
  ::google::firestore::v1::Target* release_add_target();
  ::google::firestore::v1::Target* mutable_add_target();
  void set_allocated_add_target(::google::firestore::v1::Target* add_target);
  private:
  const ::google::firestore::v1::Target& _internal_add_target() const;
  ::google::firestore::v1::Target* _internal_mutable_add_target();
  public:

  // int32 remove_target = 3;
  private:
  bool _internal_has_remove_target() const;
  public:
  void clear_remove_target();
  ::PROTOBUF_NAMESPACE_ID::int32 remove_target() const;
  void set_remove_target(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_remove_target() const;
  void _internal_set_remove_target(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  void clear_target_change();
  TargetChangeCase target_change_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.ListenRequest)
 private:
  class _Internal;
  void set_has_add_target();
  void set_has_remove_target();

  inline bool has_target_change() const;
  inline void clear_has_target_change();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::MapField<
      ListenRequest_LabelsEntry_DoNotUse,
      std::string, std::string,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
      0 > labels_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr database_;
  union TargetChangeUnion {
    TargetChangeUnion() {}
    ::google::firestore::v1::Target* add_target_;
    ::PROTOBUF_NAMESPACE_ID::int32 remove_target_;
  } target_change_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class ListenResponse :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.ListenResponse) */ {
 public:
  ListenResponse();
  virtual ~ListenResponse();

  ListenResponse(const ListenResponse& from);
  ListenResponse(ListenResponse&& from) noexcept
    : ListenResponse() {
    *this = ::std::move(from);
  }

  inline ListenResponse& operator=(const ListenResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListenResponse& operator=(ListenResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ListenResponse& default_instance();

  enum ResponseTypeCase {
    kTargetChange = 2,
    kDocumentChange = 3,
    kDocumentDelete = 4,
    kDocumentRemove = 6,
    kFilter = 5,
    RESPONSE_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ListenResponse* internal_default_instance() {
    return reinterpret_cast<const ListenResponse*>(
               &_ListenResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

  friend void swap(ListenResponse& a, ListenResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ListenResponse* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ListenResponse* New() const final {
    return CreateMaybeMessage<ListenResponse>(nullptr);
  }

  ListenResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ListenResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ListenResponse& from);
  void MergeFrom(const ListenResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ListenResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.ListenResponse";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kTargetChangeFieldNumber = 2,
    kDocumentChangeFieldNumber = 3,
    kDocumentDeleteFieldNumber = 4,
    kDocumentRemoveFieldNumber = 6,
    kFilterFieldNumber = 5,
  };
  // .google.firestore.v1.TargetChange target_change = 2;
  bool has_target_change() const;
  private:
  bool _internal_has_target_change() const;
  public:
  void clear_target_change();
  const ::google::firestore::v1::TargetChange& target_change() const;
  ::google::firestore::v1::TargetChange* release_target_change();
  ::google::firestore::v1::TargetChange* mutable_target_change();
  void set_allocated_target_change(::google::firestore::v1::TargetChange* target_change);
  private:
  const ::google::firestore::v1::TargetChange& _internal_target_change() const;
  ::google::firestore::v1::TargetChange* _internal_mutable_target_change();
  public:

  // .google.firestore.v1.DocumentChange document_change = 3;
  bool has_document_change() const;
  private:
  bool _internal_has_document_change() const;
  public:
  void clear_document_change();
  const ::google::firestore::v1::DocumentChange& document_change() const;
  ::google::firestore::v1::DocumentChange* release_document_change();
  ::google::firestore::v1::DocumentChange* mutable_document_change();
  void set_allocated_document_change(::google::firestore::v1::DocumentChange* document_change);
  private:
  const ::google::firestore::v1::DocumentChange& _internal_document_change() const;
  ::google::firestore::v1::DocumentChange* _internal_mutable_document_change();
  public:

  // .google.firestore.v1.DocumentDelete document_delete = 4;
  bool has_document_delete() const;
  private:
  bool _internal_has_document_delete() const;
  public:
  void clear_document_delete();
  const ::google::firestore::v1::DocumentDelete& document_delete() const;
  ::google::firestore::v1::DocumentDelete* release_document_delete();
  ::google::firestore::v1::DocumentDelete* mutable_document_delete();
  void set_allocated_document_delete(::google::firestore::v1::DocumentDelete* document_delete);
  private:
  const ::google::firestore::v1::DocumentDelete& _internal_document_delete() const;
  ::google::firestore::v1::DocumentDelete* _internal_mutable_document_delete();
  public:

  // .google.firestore.v1.DocumentRemove document_remove = 6;
  bool has_document_remove() const;
  private:
  bool _internal_has_document_remove() const;
  public:
  void clear_document_remove();
  const ::google::firestore::v1::DocumentRemove& document_remove() const;
  ::google::firestore::v1::DocumentRemove* release_document_remove();
  ::google::firestore::v1::DocumentRemove* mutable_document_remove();
  void set_allocated_document_remove(::google::firestore::v1::DocumentRemove* document_remove);
  private:
  const ::google::firestore::v1::DocumentRemove& _internal_document_remove() const;
  ::google::firestore::v1::DocumentRemove* _internal_mutable_document_remove();
  public:

  // .google.firestore.v1.ExistenceFilter filter = 5;
  bool has_filter() const;
  private:
  bool _internal_has_filter() const;
  public:
  void clear_filter();
  const ::google::firestore::v1::ExistenceFilter& filter() const;
  ::google::firestore::v1::ExistenceFilter* release_filter();
  ::google::firestore::v1::ExistenceFilter* mutable_filter();
  void set_allocated_filter(::google::firestore::v1::ExistenceFilter* filter);
  private:
  const ::google::firestore::v1::ExistenceFilter& _internal_filter() const;
  ::google::firestore::v1::ExistenceFilter* _internal_mutable_filter();
  public:

  void clear_response_type();
  ResponseTypeCase response_type_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.ListenResponse)
 private:
  class _Internal;
  void set_has_target_change();
  void set_has_document_change();
  void set_has_document_delete();
  void set_has_document_remove();
  void set_has_filter();

  inline bool has_response_type() const;
  inline void clear_has_response_type();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  union ResponseTypeUnion {
    ResponseTypeUnion() {}
    ::google::firestore::v1::TargetChange* target_change_;
    ::google::firestore::v1::DocumentChange* document_change_;
    ::google::firestore::v1::DocumentDelete* document_delete_;
    ::google::firestore::v1::DocumentRemove* document_remove_;
    ::google::firestore::v1::ExistenceFilter* filter_;
  } response_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class Target_DocumentsTarget :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.Target.DocumentsTarget) */ {
 public:
  Target_DocumentsTarget();
  virtual ~Target_DocumentsTarget();

  Target_DocumentsTarget(const Target_DocumentsTarget& from);
  Target_DocumentsTarget(Target_DocumentsTarget&& from) noexcept
    : Target_DocumentsTarget() {
    *this = ::std::move(from);
  }

  inline Target_DocumentsTarget& operator=(const Target_DocumentsTarget& from) {
    CopyFrom(from);
    return *this;
  }
  inline Target_DocumentsTarget& operator=(Target_DocumentsTarget&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Target_DocumentsTarget& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Target_DocumentsTarget* internal_default_instance() {
    return reinterpret_cast<const Target_DocumentsTarget*>(
               &_Target_DocumentsTarget_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

  friend void swap(Target_DocumentsTarget& a, Target_DocumentsTarget& b) {
    a.Swap(&b);
  }
  inline void Swap(Target_DocumentsTarget* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Target_DocumentsTarget* New() const final {
    return CreateMaybeMessage<Target_DocumentsTarget>(nullptr);
  }

  Target_DocumentsTarget* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Target_DocumentsTarget>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Target_DocumentsTarget& from);
  void MergeFrom(const Target_DocumentsTarget& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Target_DocumentsTarget* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.Target.DocumentsTarget";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kDocumentsFieldNumber = 2,
  };
  // repeated string documents = 2;
  int documents_size() const;
  private:
  int _internal_documents_size() const;
  public:
  void clear_documents();
  const std::string& documents(int index) const;
  std::string* mutable_documents(int index);
  void set_documents(int index, const std::string& value);
  void set_documents(int index, std::string&& value);
  void set_documents(int index, const char* value);
  void set_documents(int index, const char* value, size_t size);
  std::string* add_documents();
  void add_documents(const std::string& value);
  void add_documents(std::string&& value);
  void add_documents(const char* value);
  void add_documents(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& documents() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_documents();
  private:
  const std::string& _internal_documents(int index) const;
  std::string* _internal_add_documents();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.Target.DocumentsTarget)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> documents_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class Target_QueryTarget :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.Target.QueryTarget) */ {
 public:
  Target_QueryTarget();
  virtual ~Target_QueryTarget();

  Target_QueryTarget(const Target_QueryTarget& from);
  Target_QueryTarget(Target_QueryTarget&& from) noexcept
    : Target_QueryTarget() {
    *this = ::std::move(from);
  }

  inline Target_QueryTarget& operator=(const Target_QueryTarget& from) {
    CopyFrom(from);
    return *this;
  }
  inline Target_QueryTarget& operator=(Target_QueryTarget&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Target_QueryTarget& default_instance();

  enum QueryTypeCase {
    kStructuredQuery = 2,
    QUERY_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Target_QueryTarget* internal_default_instance() {
    return reinterpret_cast<const Target_QueryTarget*>(
               &_Target_QueryTarget_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

  friend void swap(Target_QueryTarget& a, Target_QueryTarget& b) {
    a.Swap(&b);
  }
  inline void Swap(Target_QueryTarget* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Target_QueryTarget* New() const final {
    return CreateMaybeMessage<Target_QueryTarget>(nullptr);
  }

  Target_QueryTarget* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Target_QueryTarget>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Target_QueryTarget& from);
  void MergeFrom(const Target_QueryTarget& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Target_QueryTarget* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.Target.QueryTarget";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kParentFieldNumber = 1,
    kStructuredQueryFieldNumber = 2,
  };
  // string parent = 1;
  void clear_parent();
  const std::string& parent() const;
  void set_parent(const std::string& value);
  void set_parent(std::string&& value);
  void set_parent(const char* value);
  void set_parent(const char* value, size_t size);
  std::string* mutable_parent();
  std::string* release_parent();
  void set_allocated_parent(std::string* parent);
  private:
  const std::string& _internal_parent() const;
  void _internal_set_parent(const std::string& value);
  std::string* _internal_mutable_parent();
  public:

  // .google.firestore.v1.StructuredQuery structured_query = 2;
  bool has_structured_query() const;
  private:
  bool _internal_has_structured_query() const;
  public:
  void clear_structured_query();
  const ::google::firestore::v1::StructuredQuery& structured_query() const;
  ::google::firestore::v1::StructuredQuery* release_structured_query();
  ::google::firestore::v1::StructuredQuery* mutable_structured_query();
  void set_allocated_structured_query(::google::firestore::v1::StructuredQuery* structured_query);
  private:
  const ::google::firestore::v1::StructuredQuery& _internal_structured_query() const;
  ::google::firestore::v1::StructuredQuery* _internal_mutable_structured_query();
  public:

  void clear_query_type();
  QueryTypeCase query_type_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.Target.QueryTarget)
 private:
  class _Internal;
  void set_has_structured_query();

  inline bool has_query_type() const;
  inline void clear_has_query_type();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr parent_;
  union QueryTypeUnion {
    QueryTypeUnion() {}
    ::google::firestore::v1::StructuredQuery* structured_query_;
  } query_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class Target :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.Target) */ {
 public:
  Target();
  virtual ~Target();

  Target(const Target& from);
  Target(Target&& from) noexcept
    : Target() {
    *this = ::std::move(from);
  }

  inline Target& operator=(const Target& from) {
    CopyFrom(from);
    return *this;
  }
  inline Target& operator=(Target&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const Target& default_instance();

  enum TargetTypeCase {
    kQuery = 2,
    kDocuments = 3,
    TARGET_TYPE_NOT_SET = 0,
  };

  enum ResumeTypeCase {
    kResumeToken = 4,
    kReadTime = 11,
    RESUME_TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Target* internal_default_instance() {
    return reinterpret_cast<const Target*>(
               &_Target_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    23;

  friend void swap(Target& a, Target& b) {
    a.Swap(&b);
  }
  inline void Swap(Target* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline Target* New() const final {
    return CreateMaybeMessage<Target>(nullptr);
  }

  Target* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Target>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Target& from);
  void MergeFrom(const Target& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Target* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.Target";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef Target_DocumentsTarget DocumentsTarget;
  typedef Target_QueryTarget QueryTarget;

  // accessors -------------------------------------------------------

  enum : int {
    kTargetIdFieldNumber = 5,
    kOnceFieldNumber = 6,
    kQueryFieldNumber = 2,
    kDocumentsFieldNumber = 3,
    kResumeTokenFieldNumber = 4,
    kReadTimeFieldNumber = 11,
  };
  // int32 target_id = 5;
  void clear_target_id();
  ::PROTOBUF_NAMESPACE_ID::int32 target_id() const;
  void set_target_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_target_id() const;
  void _internal_set_target_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // bool once = 6;
  void clear_once();
  bool once() const;
  void set_once(bool value);
  private:
  bool _internal_once() const;
  void _internal_set_once(bool value);
  public:

  // .google.firestore.v1.Target.QueryTarget query = 2;
  bool has_query() const;
  private:
  bool _internal_has_query() const;
  public:
  void clear_query();
  const ::google::firestore::v1::Target_QueryTarget& query() const;
  ::google::firestore::v1::Target_QueryTarget* release_query();
  ::google::firestore::v1::Target_QueryTarget* mutable_query();
  void set_allocated_query(::google::firestore::v1::Target_QueryTarget* query);
  private:
  const ::google::firestore::v1::Target_QueryTarget& _internal_query() const;
  ::google::firestore::v1::Target_QueryTarget* _internal_mutable_query();
  public:

  // .google.firestore.v1.Target.DocumentsTarget documents = 3;
  bool has_documents() const;
  private:
  bool _internal_has_documents() const;
  public:
  void clear_documents();
  const ::google::firestore::v1::Target_DocumentsTarget& documents() const;
  ::google::firestore::v1::Target_DocumentsTarget* release_documents();
  ::google::firestore::v1::Target_DocumentsTarget* mutable_documents();
  void set_allocated_documents(::google::firestore::v1::Target_DocumentsTarget* documents);
  private:
  const ::google::firestore::v1::Target_DocumentsTarget& _internal_documents() const;
  ::google::firestore::v1::Target_DocumentsTarget* _internal_mutable_documents();
  public:

  // bytes resume_token = 4;
  private:
  bool _internal_has_resume_token() const;
  public:
  void clear_resume_token();
  const std::string& resume_token() const;
  void set_resume_token(const std::string& value);
  void set_resume_token(std::string&& value);
  void set_resume_token(const char* value);
  void set_resume_token(const void* value, size_t size);
  std::string* mutable_resume_token();
  std::string* release_resume_token();
  void set_allocated_resume_token(std::string* resume_token);
  private:
  const std::string& _internal_resume_token() const;
  void _internal_set_resume_token(const std::string& value);
  std::string* _internal_mutable_resume_token();
  public:

  // .google.protobuf.Timestamp read_time = 11;
  bool has_read_time() const;
  private:
  bool _internal_has_read_time() const;
  public:
  void clear_read_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_read_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_read_time();
  void set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_read_time();
  public:

  void clear_target_type();
  TargetTypeCase target_type_case() const;
  void clear_resume_type();
  ResumeTypeCase resume_type_case() const;
  // @@protoc_insertion_point(class_scope:google.firestore.v1.Target)
 private:
  class _Internal;
  void set_has_query();
  void set_has_documents();
  void set_has_resume_token();
  void set_has_read_time();

  inline bool has_target_type() const;
  inline void clear_has_target_type();

  inline bool has_resume_type() const;
  inline void clear_has_resume_type();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::int32 target_id_;
  bool once_;
  union TargetTypeUnion {
    TargetTypeUnion() {}
    ::google::firestore::v1::Target_QueryTarget* query_;
    ::google::firestore::v1::Target_DocumentsTarget* documents_;
  } target_type_;
  union ResumeTypeUnion {
    ResumeTypeUnion() {}
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr resume_token_;
    PROTOBUF_NAMESPACE_ID::Timestamp* read_time_;
  } resume_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[2];

  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class TargetChange :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.TargetChange) */ {
 public:
  TargetChange();
  virtual ~TargetChange();

  TargetChange(const TargetChange& from);
  TargetChange(TargetChange&& from) noexcept
    : TargetChange() {
    *this = ::std::move(from);
  }

  inline TargetChange& operator=(const TargetChange& from) {
    CopyFrom(from);
    return *this;
  }
  inline TargetChange& operator=(TargetChange&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const TargetChange& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TargetChange* internal_default_instance() {
    return reinterpret_cast<const TargetChange*>(
               &_TargetChange_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

  friend void swap(TargetChange& a, TargetChange& b) {
    a.Swap(&b);
  }
  inline void Swap(TargetChange* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline TargetChange* New() const final {
    return CreateMaybeMessage<TargetChange>(nullptr);
  }

  TargetChange* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<TargetChange>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const TargetChange& from);
  void MergeFrom(const TargetChange& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TargetChange* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.TargetChange";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  typedef TargetChange_TargetChangeType TargetChangeType;
  static constexpr TargetChangeType NO_CHANGE =
    TargetChange_TargetChangeType_NO_CHANGE;
  static constexpr TargetChangeType ADD =
    TargetChange_TargetChangeType_ADD;
  static constexpr TargetChangeType REMOVE =
    TargetChange_TargetChangeType_REMOVE;
  static constexpr TargetChangeType CURRENT =
    TargetChange_TargetChangeType_CURRENT;
  static constexpr TargetChangeType RESET =
    TargetChange_TargetChangeType_RESET;
  static inline bool TargetChangeType_IsValid(int value) {
    return TargetChange_TargetChangeType_IsValid(value);
  }
  static constexpr TargetChangeType TargetChangeType_MIN =
    TargetChange_TargetChangeType_TargetChangeType_MIN;
  static constexpr TargetChangeType TargetChangeType_MAX =
    TargetChange_TargetChangeType_TargetChangeType_MAX;
  static constexpr int TargetChangeType_ARRAYSIZE =
    TargetChange_TargetChangeType_TargetChangeType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  TargetChangeType_descriptor() {
    return TargetChange_TargetChangeType_descriptor();
  }
  template<typename T>
  static inline const std::string& TargetChangeType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, TargetChangeType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function TargetChangeType_Name.");
    return TargetChange_TargetChangeType_Name(enum_t_value);
  }
  static inline bool TargetChangeType_Parse(const std::string& name,
      TargetChangeType* value) {
    return TargetChange_TargetChangeType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kTargetIdsFieldNumber = 2,
    kResumeTokenFieldNumber = 4,
    kCauseFieldNumber = 3,
    kReadTimeFieldNumber = 6,
    kTargetChangeTypeFieldNumber = 1,
  };
  // repeated int32 target_ids = 2;
  int target_ids_size() const;
  private:
  int _internal_target_ids_size() const;
  public:
  void clear_target_ids();
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_target_ids(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      _internal_target_ids() const;
  void _internal_add_target_ids(::PROTOBUF_NAMESPACE_ID::int32 value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      _internal_mutable_target_ids();
  public:
  ::PROTOBUF_NAMESPACE_ID::int32 target_ids(int index) const;
  void set_target_ids(int index, ::PROTOBUF_NAMESPACE_ID::int32 value);
  void add_target_ids(::PROTOBUF_NAMESPACE_ID::int32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
      target_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
      mutable_target_ids();

  // bytes resume_token = 4;
  void clear_resume_token();
  const std::string& resume_token() const;
  void set_resume_token(const std::string& value);
  void set_resume_token(std::string&& value);
  void set_resume_token(const char* value);
  void set_resume_token(const void* value, size_t size);
  std::string* mutable_resume_token();
  std::string* release_resume_token();
  void set_allocated_resume_token(std::string* resume_token);
  private:
  const std::string& _internal_resume_token() const;
  void _internal_set_resume_token(const std::string& value);
  std::string* _internal_mutable_resume_token();
  public:

  // .google.rpc.Status cause = 3;
  bool has_cause() const;
  private:
  bool _internal_has_cause() const;
  public:
  void clear_cause();
  const ::google::rpc::Status& cause() const;
  ::google::rpc::Status* release_cause();
  ::google::rpc::Status* mutable_cause();
  void set_allocated_cause(::google::rpc::Status* cause);
  private:
  const ::google::rpc::Status& _internal_cause() const;
  ::google::rpc::Status* _internal_mutable_cause();
  public:

  // .google.protobuf.Timestamp read_time = 6;
  bool has_read_time() const;
  private:
  bool _internal_has_read_time() const;
  public:
  void clear_read_time();
  const PROTOBUF_NAMESPACE_ID::Timestamp& read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* release_read_time();
  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_read_time();
  void set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time);
  private:
  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_read_time() const;
  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_read_time();
  public:

  // .google.firestore.v1.TargetChange.TargetChangeType target_change_type = 1;
  void clear_target_change_type();
  ::google::firestore::v1::TargetChange_TargetChangeType target_change_type() const;
  void set_target_change_type(::google::firestore::v1::TargetChange_TargetChangeType value);
  private:
  ::google::firestore::v1::TargetChange_TargetChangeType _internal_target_change_type() const;
  void _internal_set_target_change_type(::google::firestore::v1::TargetChange_TargetChangeType value);
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.TargetChange)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > target_ids_;
  mutable std::atomic<int> _target_ids_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr resume_token_;
  ::google::rpc::Status* cause_;
  PROTOBUF_NAMESPACE_ID::Timestamp* read_time_;
  int target_change_type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class ListCollectionIdsRequest :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.ListCollectionIdsRequest) */ {
 public:
  ListCollectionIdsRequest();
  virtual ~ListCollectionIdsRequest();

  ListCollectionIdsRequest(const ListCollectionIdsRequest& from);
  ListCollectionIdsRequest(ListCollectionIdsRequest&& from) noexcept
    : ListCollectionIdsRequest() {
    *this = ::std::move(from);
  }

  inline ListCollectionIdsRequest& operator=(const ListCollectionIdsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListCollectionIdsRequest& operator=(ListCollectionIdsRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ListCollectionIdsRequest& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ListCollectionIdsRequest* internal_default_instance() {
    return reinterpret_cast<const ListCollectionIdsRequest*>(
               &_ListCollectionIdsRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    25;

  friend void swap(ListCollectionIdsRequest& a, ListCollectionIdsRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(ListCollectionIdsRequest* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ListCollectionIdsRequest* New() const final {
    return CreateMaybeMessage<ListCollectionIdsRequest>(nullptr);
  }

  ListCollectionIdsRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ListCollectionIdsRequest>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ListCollectionIdsRequest& from);
  void MergeFrom(const ListCollectionIdsRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ListCollectionIdsRequest* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.ListCollectionIdsRequest";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kParentFieldNumber = 1,
    kPageTokenFieldNumber = 3,
    kPageSizeFieldNumber = 2,
  };
  // string parent = 1;
  void clear_parent();
  const std::string& parent() const;
  void set_parent(const std::string& value);
  void set_parent(std::string&& value);
  void set_parent(const char* value);
  void set_parent(const char* value, size_t size);
  std::string* mutable_parent();
  std::string* release_parent();
  void set_allocated_parent(std::string* parent);
  private:
  const std::string& _internal_parent() const;
  void _internal_set_parent(const std::string& value);
  std::string* _internal_mutable_parent();
  public:

  // string page_token = 3;
  void clear_page_token();
  const std::string& page_token() const;
  void set_page_token(const std::string& value);
  void set_page_token(std::string&& value);
  void set_page_token(const char* value);
  void set_page_token(const char* value, size_t size);
  std::string* mutable_page_token();
  std::string* release_page_token();
  void set_allocated_page_token(std::string* page_token);
  private:
  const std::string& _internal_page_token() const;
  void _internal_set_page_token(const std::string& value);
  std::string* _internal_mutable_page_token();
  public:

  // int32 page_size = 2;
  void clear_page_size();
  ::PROTOBUF_NAMESPACE_ID::int32 page_size() const;
  void set_page_size(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_page_size() const;
  void _internal_set_page_size(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.ListCollectionIdsRequest)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr parent_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr page_token_;
  ::PROTOBUF_NAMESPACE_ID::int32 page_size_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// -------------------------------------------------------------------

class ListCollectionIdsResponse :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.ListCollectionIdsResponse) */ {
 public:
  ListCollectionIdsResponse();
  virtual ~ListCollectionIdsResponse();

  ListCollectionIdsResponse(const ListCollectionIdsResponse& from);
  ListCollectionIdsResponse(ListCollectionIdsResponse&& from) noexcept
    : ListCollectionIdsResponse() {
    *this = ::std::move(from);
  }

  inline ListCollectionIdsResponse& operator=(const ListCollectionIdsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListCollectionIdsResponse& operator=(ListCollectionIdsResponse&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const ListCollectionIdsResponse& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ListCollectionIdsResponse* internal_default_instance() {
    return reinterpret_cast<const ListCollectionIdsResponse*>(
               &_ListCollectionIdsResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

  friend void swap(ListCollectionIdsResponse& a, ListCollectionIdsResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(ListCollectionIdsResponse* other) {
    if (other == this) return;
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  inline ListCollectionIdsResponse* New() const final {
    return CreateMaybeMessage<ListCollectionIdsResponse>(nullptr);
  }

  ListCollectionIdsResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<ListCollectionIdsResponse>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const ListCollectionIdsResponse& from);
  void MergeFrom(const ListCollectionIdsResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ListCollectionIdsResponse* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "google.firestore.v1.ListCollectionIdsResponse";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto);
    return ::descriptor_table_google_2ffirestore_2fv1_2ffirestore_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kCollectionIdsFieldNumber = 1,
    kNextPageTokenFieldNumber = 2,
  };
  // repeated string collection_ids = 1;
  int collection_ids_size() const;
  private:
  int _internal_collection_ids_size() const;
  public:
  void clear_collection_ids();
  const std::string& collection_ids(int index) const;
  std::string* mutable_collection_ids(int index);
  void set_collection_ids(int index, const std::string& value);
  void set_collection_ids(int index, std::string&& value);
  void set_collection_ids(int index, const char* value);
  void set_collection_ids(int index, const char* value, size_t size);
  std::string* add_collection_ids();
  void add_collection_ids(const std::string& value);
  void add_collection_ids(std::string&& value);
  void add_collection_ids(const char* value);
  void add_collection_ids(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& collection_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_collection_ids();
  private:
  const std::string& _internal_collection_ids(int index) const;
  std::string* _internal_add_collection_ids();
  public:

  // string next_page_token = 2;
  void clear_next_page_token();
  const std::string& next_page_token() const;
  void set_next_page_token(const std::string& value);
  void set_next_page_token(std::string&& value);
  void set_next_page_token(const char* value);
  void set_next_page_token(const char* value, size_t size);
  std::string* mutable_next_page_token();
  std::string* release_next_page_token();
  void set_allocated_next_page_token(std::string* next_page_token);
  private:
  const std::string& _internal_next_page_token() const;
  void _internal_set_next_page_token(const std::string& value);
  std::string* _internal_mutable_next_page_token();
  public:

  // @@protoc_insertion_point(class_scope:google.firestore.v1.ListCollectionIdsResponse)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> collection_ids_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr next_page_token_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_google_2ffirestore_2fv1_2ffirestore_2eproto;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// GetDocumentRequest

// string name = 1;
inline void GetDocumentRequest::clear_name() {
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& GetDocumentRequest::name() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.GetDocumentRequest.name)
  return _internal_name();
}
inline void GetDocumentRequest::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.GetDocumentRequest.name)
}
inline std::string* GetDocumentRequest::mutable_name() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.GetDocumentRequest.name)
  return _internal_mutable_name();
}
inline const std::string& GetDocumentRequest::_internal_name() const {
  return name_.GetNoArena();
}
inline void GetDocumentRequest::_internal_set_name(const std::string& value) {
  
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void GetDocumentRequest::set_name(std::string&& value) {
  
  name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.GetDocumentRequest.name)
}
inline void GetDocumentRequest::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.GetDocumentRequest.name)
}
inline void GetDocumentRequest::set_name(const char* value, size_t size) {
  
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.GetDocumentRequest.name)
}
inline std::string* GetDocumentRequest::_internal_mutable_name() {
  
  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* GetDocumentRequest::release_name() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.GetDocumentRequest.name)
  
  return name_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void GetDocumentRequest::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.GetDocumentRequest.name)
}

// .google.firestore.v1.DocumentMask mask = 2;
inline bool GetDocumentRequest::_internal_has_mask() const {
  return this != internal_default_instance() && mask_ != nullptr;
}
inline bool GetDocumentRequest::has_mask() const {
  return _internal_has_mask();
}
inline const ::google::firestore::v1::DocumentMask& GetDocumentRequest::_internal_mask() const {
  const ::google::firestore::v1::DocumentMask* p = mask_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::DocumentMask*>(
      &::google::firestore::v1::_DocumentMask_default_instance_);
}
inline const ::google::firestore::v1::DocumentMask& GetDocumentRequest::mask() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.GetDocumentRequest.mask)
  return _internal_mask();
}
inline ::google::firestore::v1::DocumentMask* GetDocumentRequest::release_mask() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.GetDocumentRequest.mask)
  
  ::google::firestore::v1::DocumentMask* temp = mask_;
  mask_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::DocumentMask* GetDocumentRequest::_internal_mutable_mask() {
  
  if (mask_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::DocumentMask>(GetArenaNoVirtual());
    mask_ = p;
  }
  return mask_;
}
inline ::google::firestore::v1::DocumentMask* GetDocumentRequest::mutable_mask() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.GetDocumentRequest.mask)
  return _internal_mutable_mask();
}
inline void GetDocumentRequest::set_allocated_mask(::google::firestore::v1::DocumentMask* mask) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mask_);
  }
  if (mask) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      mask = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mask, submessage_arena);
    }
    
  } else {
    
  }
  mask_ = mask;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.GetDocumentRequest.mask)
}

// bytes transaction = 3;
inline bool GetDocumentRequest::_internal_has_transaction() const {
  return consistency_selector_case() == kTransaction;
}
inline void GetDocumentRequest::set_has_transaction() {
  _oneof_case_[0] = kTransaction;
}
inline void GetDocumentRequest::clear_transaction() {
  if (_internal_has_transaction()) {
    consistency_selector_.transaction_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    clear_has_consistency_selector();
  }
}
inline const std::string& GetDocumentRequest::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.GetDocumentRequest.transaction)
  return _internal_transaction();
}
inline void GetDocumentRequest::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.GetDocumentRequest.transaction)
}
inline std::string* GetDocumentRequest::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.GetDocumentRequest.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& GetDocumentRequest::_internal_transaction() const {
  if (_internal_has_transaction()) {
    return consistency_selector_.transaction_.GetNoArena();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void GetDocumentRequest::_internal_set_transaction(const std::string& value) {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void GetDocumentRequest::set_transaction(std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.GetDocumentRequest.transaction)
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.GetDocumentRequest.transaction)
}
inline void GetDocumentRequest::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.GetDocumentRequest.transaction)
}
inline void GetDocumentRequest::set_transaction(const void* value, size_t size) {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.GetDocumentRequest.transaction)
}
inline std::string* GetDocumentRequest::_internal_mutable_transaction() {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return consistency_selector_.transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* GetDocumentRequest::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.GetDocumentRequest.transaction)
  if (_internal_has_transaction()) {
    clear_has_consistency_selector();
    return consistency_selector_.transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  } else {
    return nullptr;
  }
}
inline void GetDocumentRequest::set_allocated_transaction(std::string* transaction) {
  if (has_consistency_selector()) {
    clear_consistency_selector();
  }
  if (transaction != nullptr) {
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(transaction);
  }
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.GetDocumentRequest.transaction)
}

// .google.protobuf.Timestamp read_time = 5;
inline bool GetDocumentRequest::_internal_has_read_time() const {
  return consistency_selector_case() == kReadTime;
}
inline bool GetDocumentRequest::has_read_time() const {
  return _internal_has_read_time();
}
inline void GetDocumentRequest::set_has_read_time() {
  _oneof_case_[0] = kReadTime;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* GetDocumentRequest::release_read_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.GetDocumentRequest.read_time)
  if (_internal_has_read_time()) {
    clear_has_consistency_selector();
      PROTOBUF_NAMESPACE_ID::Timestamp* temp = consistency_selector_.read_time_;
    consistency_selector_.read_time_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& GetDocumentRequest::_internal_read_time() const {
  return _internal_has_read_time()
      ? *consistency_selector_.read_time_
      : *reinterpret_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(&PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& GetDocumentRequest::read_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.GetDocumentRequest.read_time)
  return _internal_read_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* GetDocumentRequest::_internal_mutable_read_time() {
  if (!_internal_has_read_time()) {
    clear_consistency_selector();
    set_has_read_time();
    consistency_selector_.read_time_ = CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Timestamp >(
        GetArenaNoVirtual());
  }
  return consistency_selector_.read_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* GetDocumentRequest::mutable_read_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.GetDocumentRequest.read_time)
  return _internal_mutable_read_time();
}

inline bool GetDocumentRequest::has_consistency_selector() const {
  return consistency_selector_case() != CONSISTENCY_SELECTOR_NOT_SET;
}
inline void GetDocumentRequest::clear_has_consistency_selector() {
  _oneof_case_[0] = CONSISTENCY_SELECTOR_NOT_SET;
}
inline GetDocumentRequest::ConsistencySelectorCase GetDocumentRequest::consistency_selector_case() const {
  return GetDocumentRequest::ConsistencySelectorCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// ListDocumentsRequest

// string parent = 1;
inline void ListDocumentsRequest::clear_parent() {
  parent_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListDocumentsRequest::parent() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.parent)
  return _internal_parent();
}
inline void ListDocumentsRequest::set_parent(const std::string& value) {
  _internal_set_parent(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsRequest.parent)
}
inline std::string* ListDocumentsRequest::mutable_parent() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsRequest.parent)
  return _internal_mutable_parent();
}
inline const std::string& ListDocumentsRequest::_internal_parent() const {
  return parent_.GetNoArena();
}
inline void ListDocumentsRequest::_internal_set_parent(const std::string& value) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListDocumentsRequest::set_parent(std::string&& value) {
  
  parent_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListDocumentsRequest.parent)
}
inline void ListDocumentsRequest::set_parent(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListDocumentsRequest.parent)
}
inline void ListDocumentsRequest::set_parent(const char* value, size_t size) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListDocumentsRequest.parent)
}
inline std::string* ListDocumentsRequest::_internal_mutable_parent() {
  
  return parent_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListDocumentsRequest::release_parent() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListDocumentsRequest.parent)
  
  return parent_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListDocumentsRequest::set_allocated_parent(std::string* parent) {
  if (parent != nullptr) {
    
  } else {
    
  }
  parent_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), parent);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListDocumentsRequest.parent)
}

// string collection_id = 2;
inline void ListDocumentsRequest::clear_collection_id() {
  collection_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListDocumentsRequest::collection_id() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.collection_id)
  return _internal_collection_id();
}
inline void ListDocumentsRequest::set_collection_id(const std::string& value) {
  _internal_set_collection_id(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsRequest.collection_id)
}
inline std::string* ListDocumentsRequest::mutable_collection_id() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsRequest.collection_id)
  return _internal_mutable_collection_id();
}
inline const std::string& ListDocumentsRequest::_internal_collection_id() const {
  return collection_id_.GetNoArena();
}
inline void ListDocumentsRequest::_internal_set_collection_id(const std::string& value) {
  
  collection_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListDocumentsRequest::set_collection_id(std::string&& value) {
  
  collection_id_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListDocumentsRequest.collection_id)
}
inline void ListDocumentsRequest::set_collection_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  collection_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListDocumentsRequest.collection_id)
}
inline void ListDocumentsRequest::set_collection_id(const char* value, size_t size) {
  
  collection_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListDocumentsRequest.collection_id)
}
inline std::string* ListDocumentsRequest::_internal_mutable_collection_id() {
  
  return collection_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListDocumentsRequest::release_collection_id() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListDocumentsRequest.collection_id)
  
  return collection_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListDocumentsRequest::set_allocated_collection_id(std::string* collection_id) {
  if (collection_id != nullptr) {
    
  } else {
    
  }
  collection_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), collection_id);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListDocumentsRequest.collection_id)
}

// int32 page_size = 3;
inline void ListDocumentsRequest::clear_page_size() {
  page_size_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ListDocumentsRequest::_internal_page_size() const {
  return page_size_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ListDocumentsRequest::page_size() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.page_size)
  return _internal_page_size();
}
inline void ListDocumentsRequest::_internal_set_page_size(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  page_size_ = value;
}
inline void ListDocumentsRequest::set_page_size(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_page_size(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsRequest.page_size)
}

// string page_token = 4;
inline void ListDocumentsRequest::clear_page_token() {
  page_token_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListDocumentsRequest::page_token() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.page_token)
  return _internal_page_token();
}
inline void ListDocumentsRequest::set_page_token(const std::string& value) {
  _internal_set_page_token(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsRequest.page_token)
}
inline std::string* ListDocumentsRequest::mutable_page_token() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsRequest.page_token)
  return _internal_mutable_page_token();
}
inline const std::string& ListDocumentsRequest::_internal_page_token() const {
  return page_token_.GetNoArena();
}
inline void ListDocumentsRequest::_internal_set_page_token(const std::string& value) {
  
  page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListDocumentsRequest::set_page_token(std::string&& value) {
  
  page_token_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListDocumentsRequest.page_token)
}
inline void ListDocumentsRequest::set_page_token(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListDocumentsRequest.page_token)
}
inline void ListDocumentsRequest::set_page_token(const char* value, size_t size) {
  
  page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListDocumentsRequest.page_token)
}
inline std::string* ListDocumentsRequest::_internal_mutable_page_token() {
  
  return page_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListDocumentsRequest::release_page_token() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListDocumentsRequest.page_token)
  
  return page_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListDocumentsRequest::set_allocated_page_token(std::string* page_token) {
  if (page_token != nullptr) {
    
  } else {
    
  }
  page_token_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), page_token);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListDocumentsRequest.page_token)
}

// string order_by = 6;
inline void ListDocumentsRequest::clear_order_by() {
  order_by_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListDocumentsRequest::order_by() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.order_by)
  return _internal_order_by();
}
inline void ListDocumentsRequest::set_order_by(const std::string& value) {
  _internal_set_order_by(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsRequest.order_by)
}
inline std::string* ListDocumentsRequest::mutable_order_by() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsRequest.order_by)
  return _internal_mutable_order_by();
}
inline const std::string& ListDocumentsRequest::_internal_order_by() const {
  return order_by_.GetNoArena();
}
inline void ListDocumentsRequest::_internal_set_order_by(const std::string& value) {
  
  order_by_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListDocumentsRequest::set_order_by(std::string&& value) {
  
  order_by_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListDocumentsRequest.order_by)
}
inline void ListDocumentsRequest::set_order_by(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  order_by_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListDocumentsRequest.order_by)
}
inline void ListDocumentsRequest::set_order_by(const char* value, size_t size) {
  
  order_by_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListDocumentsRequest.order_by)
}
inline std::string* ListDocumentsRequest::_internal_mutable_order_by() {
  
  return order_by_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListDocumentsRequest::release_order_by() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListDocumentsRequest.order_by)
  
  return order_by_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListDocumentsRequest::set_allocated_order_by(std::string* order_by) {
  if (order_by != nullptr) {
    
  } else {
    
  }
  order_by_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), order_by);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListDocumentsRequest.order_by)
}

// .google.firestore.v1.DocumentMask mask = 7;
inline bool ListDocumentsRequest::_internal_has_mask() const {
  return this != internal_default_instance() && mask_ != nullptr;
}
inline bool ListDocumentsRequest::has_mask() const {
  return _internal_has_mask();
}
inline const ::google::firestore::v1::DocumentMask& ListDocumentsRequest::_internal_mask() const {
  const ::google::firestore::v1::DocumentMask* p = mask_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::DocumentMask*>(
      &::google::firestore::v1::_DocumentMask_default_instance_);
}
inline const ::google::firestore::v1::DocumentMask& ListDocumentsRequest::mask() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.mask)
  return _internal_mask();
}
inline ::google::firestore::v1::DocumentMask* ListDocumentsRequest::release_mask() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListDocumentsRequest.mask)
  
  ::google::firestore::v1::DocumentMask* temp = mask_;
  mask_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::DocumentMask* ListDocumentsRequest::_internal_mutable_mask() {
  
  if (mask_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::DocumentMask>(GetArenaNoVirtual());
    mask_ = p;
  }
  return mask_;
}
inline ::google::firestore::v1::DocumentMask* ListDocumentsRequest::mutable_mask() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsRequest.mask)
  return _internal_mutable_mask();
}
inline void ListDocumentsRequest::set_allocated_mask(::google::firestore::v1::DocumentMask* mask) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mask_);
  }
  if (mask) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      mask = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mask, submessage_arena);
    }
    
  } else {
    
  }
  mask_ = mask;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListDocumentsRequest.mask)
}

// bytes transaction = 8;
inline bool ListDocumentsRequest::_internal_has_transaction() const {
  return consistency_selector_case() == kTransaction;
}
inline void ListDocumentsRequest::set_has_transaction() {
  _oneof_case_[0] = kTransaction;
}
inline void ListDocumentsRequest::clear_transaction() {
  if (_internal_has_transaction()) {
    consistency_selector_.transaction_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    clear_has_consistency_selector();
  }
}
inline const std::string& ListDocumentsRequest::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.transaction)
  return _internal_transaction();
}
inline void ListDocumentsRequest::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsRequest.transaction)
}
inline std::string* ListDocumentsRequest::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsRequest.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& ListDocumentsRequest::_internal_transaction() const {
  if (_internal_has_transaction()) {
    return consistency_selector_.transaction_.GetNoArena();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void ListDocumentsRequest::_internal_set_transaction(const std::string& value) {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListDocumentsRequest::set_transaction(std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsRequest.transaction)
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListDocumentsRequest.transaction)
}
inline void ListDocumentsRequest::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListDocumentsRequest.transaction)
}
inline void ListDocumentsRequest::set_transaction(const void* value, size_t size) {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListDocumentsRequest.transaction)
}
inline std::string* ListDocumentsRequest::_internal_mutable_transaction() {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return consistency_selector_.transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListDocumentsRequest::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListDocumentsRequest.transaction)
  if (_internal_has_transaction()) {
    clear_has_consistency_selector();
    return consistency_selector_.transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  } else {
    return nullptr;
  }
}
inline void ListDocumentsRequest::set_allocated_transaction(std::string* transaction) {
  if (has_consistency_selector()) {
    clear_consistency_selector();
  }
  if (transaction != nullptr) {
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(transaction);
  }
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListDocumentsRequest.transaction)
}

// .google.protobuf.Timestamp read_time = 10;
inline bool ListDocumentsRequest::_internal_has_read_time() const {
  return consistency_selector_case() == kReadTime;
}
inline bool ListDocumentsRequest::has_read_time() const {
  return _internal_has_read_time();
}
inline void ListDocumentsRequest::set_has_read_time() {
  _oneof_case_[0] = kReadTime;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* ListDocumentsRequest::release_read_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListDocumentsRequest.read_time)
  if (_internal_has_read_time()) {
    clear_has_consistency_selector();
      PROTOBUF_NAMESPACE_ID::Timestamp* temp = consistency_selector_.read_time_;
    consistency_selector_.read_time_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& ListDocumentsRequest::_internal_read_time() const {
  return _internal_has_read_time()
      ? *consistency_selector_.read_time_
      : *reinterpret_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(&PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& ListDocumentsRequest::read_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.read_time)
  return _internal_read_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* ListDocumentsRequest::_internal_mutable_read_time() {
  if (!_internal_has_read_time()) {
    clear_consistency_selector();
    set_has_read_time();
    consistency_selector_.read_time_ = CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Timestamp >(
        GetArenaNoVirtual());
  }
  return consistency_selector_.read_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* ListDocumentsRequest::mutable_read_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsRequest.read_time)
  return _internal_mutable_read_time();
}

// bool show_missing = 12;
inline void ListDocumentsRequest::clear_show_missing() {
  show_missing_ = false;
}
inline bool ListDocumentsRequest::_internal_show_missing() const {
  return show_missing_;
}
inline bool ListDocumentsRequest::show_missing() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsRequest.show_missing)
  return _internal_show_missing();
}
inline void ListDocumentsRequest::_internal_set_show_missing(bool value) {
  
  show_missing_ = value;
}
inline void ListDocumentsRequest::set_show_missing(bool value) {
  _internal_set_show_missing(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsRequest.show_missing)
}

inline bool ListDocumentsRequest::has_consistency_selector() const {
  return consistency_selector_case() != CONSISTENCY_SELECTOR_NOT_SET;
}
inline void ListDocumentsRequest::clear_has_consistency_selector() {
  _oneof_case_[0] = CONSISTENCY_SELECTOR_NOT_SET;
}
inline ListDocumentsRequest::ConsistencySelectorCase ListDocumentsRequest::consistency_selector_case() const {
  return ListDocumentsRequest::ConsistencySelectorCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// ListDocumentsResponse

// repeated .google.firestore.v1.Document documents = 1;
inline int ListDocumentsResponse::_internal_documents_size() const {
  return documents_.size();
}
inline int ListDocumentsResponse::documents_size() const {
  return _internal_documents_size();
}
inline ::google::firestore::v1::Document* ListDocumentsResponse::mutable_documents(int index) {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsResponse.documents)
  return documents_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Document >*
ListDocumentsResponse::mutable_documents() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.ListDocumentsResponse.documents)
  return &documents_;
}
inline const ::google::firestore::v1::Document& ListDocumentsResponse::_internal_documents(int index) const {
  return documents_.Get(index);
}
inline const ::google::firestore::v1::Document& ListDocumentsResponse::documents(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsResponse.documents)
  return _internal_documents(index);
}
inline ::google::firestore::v1::Document* ListDocumentsResponse::_internal_add_documents() {
  return documents_.Add();
}
inline ::google::firestore::v1::Document* ListDocumentsResponse::add_documents() {
  // @@protoc_insertion_point(field_add:google.firestore.v1.ListDocumentsResponse.documents)
  return _internal_add_documents();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Document >&
ListDocumentsResponse::documents() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.ListDocumentsResponse.documents)
  return documents_;
}

// string next_page_token = 2;
inline void ListDocumentsResponse::clear_next_page_token() {
  next_page_token_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListDocumentsResponse::next_page_token() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListDocumentsResponse.next_page_token)
  return _internal_next_page_token();
}
inline void ListDocumentsResponse::set_next_page_token(const std::string& value) {
  _internal_set_next_page_token(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListDocumentsResponse.next_page_token)
}
inline std::string* ListDocumentsResponse::mutable_next_page_token() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListDocumentsResponse.next_page_token)
  return _internal_mutable_next_page_token();
}
inline const std::string& ListDocumentsResponse::_internal_next_page_token() const {
  return next_page_token_.GetNoArena();
}
inline void ListDocumentsResponse::_internal_set_next_page_token(const std::string& value) {
  
  next_page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListDocumentsResponse::set_next_page_token(std::string&& value) {
  
  next_page_token_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListDocumentsResponse.next_page_token)
}
inline void ListDocumentsResponse::set_next_page_token(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  next_page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListDocumentsResponse.next_page_token)
}
inline void ListDocumentsResponse::set_next_page_token(const char* value, size_t size) {
  
  next_page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListDocumentsResponse.next_page_token)
}
inline std::string* ListDocumentsResponse::_internal_mutable_next_page_token() {
  
  return next_page_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListDocumentsResponse::release_next_page_token() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListDocumentsResponse.next_page_token)
  
  return next_page_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListDocumentsResponse::set_allocated_next_page_token(std::string* next_page_token) {
  if (next_page_token != nullptr) {
    
  } else {
    
  }
  next_page_token_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), next_page_token);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListDocumentsResponse.next_page_token)
}

// -------------------------------------------------------------------

// CreateDocumentRequest

// string parent = 1;
inline void CreateDocumentRequest::clear_parent() {
  parent_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& CreateDocumentRequest::parent() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CreateDocumentRequest.parent)
  return _internal_parent();
}
inline void CreateDocumentRequest::set_parent(const std::string& value) {
  _internal_set_parent(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.CreateDocumentRequest.parent)
}
inline std::string* CreateDocumentRequest::mutable_parent() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CreateDocumentRequest.parent)
  return _internal_mutable_parent();
}
inline const std::string& CreateDocumentRequest::_internal_parent() const {
  return parent_.GetNoArena();
}
inline void CreateDocumentRequest::_internal_set_parent(const std::string& value) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void CreateDocumentRequest::set_parent(std::string&& value) {
  
  parent_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.CreateDocumentRequest.parent)
}
inline void CreateDocumentRequest::set_parent(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.CreateDocumentRequest.parent)
}
inline void CreateDocumentRequest::set_parent(const char* value, size_t size) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.CreateDocumentRequest.parent)
}
inline std::string* CreateDocumentRequest::_internal_mutable_parent() {
  
  return parent_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* CreateDocumentRequest::release_parent() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.CreateDocumentRequest.parent)
  
  return parent_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void CreateDocumentRequest::set_allocated_parent(std::string* parent) {
  if (parent != nullptr) {
    
  } else {
    
  }
  parent_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), parent);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.CreateDocumentRequest.parent)
}

// string collection_id = 2;
inline void CreateDocumentRequest::clear_collection_id() {
  collection_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& CreateDocumentRequest::collection_id() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CreateDocumentRequest.collection_id)
  return _internal_collection_id();
}
inline void CreateDocumentRequest::set_collection_id(const std::string& value) {
  _internal_set_collection_id(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.CreateDocumentRequest.collection_id)
}
inline std::string* CreateDocumentRequest::mutable_collection_id() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CreateDocumentRequest.collection_id)
  return _internal_mutable_collection_id();
}
inline const std::string& CreateDocumentRequest::_internal_collection_id() const {
  return collection_id_.GetNoArena();
}
inline void CreateDocumentRequest::_internal_set_collection_id(const std::string& value) {
  
  collection_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void CreateDocumentRequest::set_collection_id(std::string&& value) {
  
  collection_id_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.CreateDocumentRequest.collection_id)
}
inline void CreateDocumentRequest::set_collection_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  collection_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.CreateDocumentRequest.collection_id)
}
inline void CreateDocumentRequest::set_collection_id(const char* value, size_t size) {
  
  collection_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.CreateDocumentRequest.collection_id)
}
inline std::string* CreateDocumentRequest::_internal_mutable_collection_id() {
  
  return collection_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* CreateDocumentRequest::release_collection_id() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.CreateDocumentRequest.collection_id)
  
  return collection_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void CreateDocumentRequest::set_allocated_collection_id(std::string* collection_id) {
  if (collection_id != nullptr) {
    
  } else {
    
  }
  collection_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), collection_id);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.CreateDocumentRequest.collection_id)
}

// string document_id = 3;
inline void CreateDocumentRequest::clear_document_id() {
  document_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& CreateDocumentRequest::document_id() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CreateDocumentRequest.document_id)
  return _internal_document_id();
}
inline void CreateDocumentRequest::set_document_id(const std::string& value) {
  _internal_set_document_id(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.CreateDocumentRequest.document_id)
}
inline std::string* CreateDocumentRequest::mutable_document_id() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CreateDocumentRequest.document_id)
  return _internal_mutable_document_id();
}
inline const std::string& CreateDocumentRequest::_internal_document_id() const {
  return document_id_.GetNoArena();
}
inline void CreateDocumentRequest::_internal_set_document_id(const std::string& value) {
  
  document_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void CreateDocumentRequest::set_document_id(std::string&& value) {
  
  document_id_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.CreateDocumentRequest.document_id)
}
inline void CreateDocumentRequest::set_document_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  document_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.CreateDocumentRequest.document_id)
}
inline void CreateDocumentRequest::set_document_id(const char* value, size_t size) {
  
  document_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.CreateDocumentRequest.document_id)
}
inline std::string* CreateDocumentRequest::_internal_mutable_document_id() {
  
  return document_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* CreateDocumentRequest::release_document_id() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.CreateDocumentRequest.document_id)
  
  return document_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void CreateDocumentRequest::set_allocated_document_id(std::string* document_id) {
  if (document_id != nullptr) {
    
  } else {
    
  }
  document_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), document_id);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.CreateDocumentRequest.document_id)
}

// .google.firestore.v1.Document document = 4;
inline bool CreateDocumentRequest::_internal_has_document() const {
  return this != internal_default_instance() && document_ != nullptr;
}
inline bool CreateDocumentRequest::has_document() const {
  return _internal_has_document();
}
inline const ::google::firestore::v1::Document& CreateDocumentRequest::_internal_document() const {
  const ::google::firestore::v1::Document* p = document_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::Document*>(
      &::google::firestore::v1::_Document_default_instance_);
}
inline const ::google::firestore::v1::Document& CreateDocumentRequest::document() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CreateDocumentRequest.document)
  return _internal_document();
}
inline ::google::firestore::v1::Document* CreateDocumentRequest::release_document() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.CreateDocumentRequest.document)
  
  ::google::firestore::v1::Document* temp = document_;
  document_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::Document* CreateDocumentRequest::_internal_mutable_document() {
  
  if (document_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::Document>(GetArenaNoVirtual());
    document_ = p;
  }
  return document_;
}
inline ::google::firestore::v1::Document* CreateDocumentRequest::mutable_document() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CreateDocumentRequest.document)
  return _internal_mutable_document();
}
inline void CreateDocumentRequest::set_allocated_document(::google::firestore::v1::Document* document) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(document_);
  }
  if (document) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      document = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, document, submessage_arena);
    }
    
  } else {
    
  }
  document_ = document;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.CreateDocumentRequest.document)
}

// .google.firestore.v1.DocumentMask mask = 5;
inline bool CreateDocumentRequest::_internal_has_mask() const {
  return this != internal_default_instance() && mask_ != nullptr;
}
inline bool CreateDocumentRequest::has_mask() const {
  return _internal_has_mask();
}
inline const ::google::firestore::v1::DocumentMask& CreateDocumentRequest::_internal_mask() const {
  const ::google::firestore::v1::DocumentMask* p = mask_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::DocumentMask*>(
      &::google::firestore::v1::_DocumentMask_default_instance_);
}
inline const ::google::firestore::v1::DocumentMask& CreateDocumentRequest::mask() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CreateDocumentRequest.mask)
  return _internal_mask();
}
inline ::google::firestore::v1::DocumentMask* CreateDocumentRequest::release_mask() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.CreateDocumentRequest.mask)
  
  ::google::firestore::v1::DocumentMask* temp = mask_;
  mask_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::DocumentMask* CreateDocumentRequest::_internal_mutable_mask() {
  
  if (mask_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::DocumentMask>(GetArenaNoVirtual());
    mask_ = p;
  }
  return mask_;
}
inline ::google::firestore::v1::DocumentMask* CreateDocumentRequest::mutable_mask() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CreateDocumentRequest.mask)
  return _internal_mutable_mask();
}
inline void CreateDocumentRequest::set_allocated_mask(::google::firestore::v1::DocumentMask* mask) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mask_);
  }
  if (mask) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      mask = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mask, submessage_arena);
    }
    
  } else {
    
  }
  mask_ = mask;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.CreateDocumentRequest.mask)
}

// -------------------------------------------------------------------

// UpdateDocumentRequest

// .google.firestore.v1.Document document = 1;
inline bool UpdateDocumentRequest::_internal_has_document() const {
  return this != internal_default_instance() && document_ != nullptr;
}
inline bool UpdateDocumentRequest::has_document() const {
  return _internal_has_document();
}
inline const ::google::firestore::v1::Document& UpdateDocumentRequest::_internal_document() const {
  const ::google::firestore::v1::Document* p = document_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::Document*>(
      &::google::firestore::v1::_Document_default_instance_);
}
inline const ::google::firestore::v1::Document& UpdateDocumentRequest::document() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.UpdateDocumentRequest.document)
  return _internal_document();
}
inline ::google::firestore::v1::Document* UpdateDocumentRequest::release_document() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.UpdateDocumentRequest.document)
  
  ::google::firestore::v1::Document* temp = document_;
  document_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::Document* UpdateDocumentRequest::_internal_mutable_document() {
  
  if (document_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::Document>(GetArenaNoVirtual());
    document_ = p;
  }
  return document_;
}
inline ::google::firestore::v1::Document* UpdateDocumentRequest::mutable_document() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.UpdateDocumentRequest.document)
  return _internal_mutable_document();
}
inline void UpdateDocumentRequest::set_allocated_document(::google::firestore::v1::Document* document) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(document_);
  }
  if (document) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      document = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, document, submessage_arena);
    }
    
  } else {
    
  }
  document_ = document;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.UpdateDocumentRequest.document)
}

// .google.firestore.v1.DocumentMask update_mask = 2;
inline bool UpdateDocumentRequest::_internal_has_update_mask() const {
  return this != internal_default_instance() && update_mask_ != nullptr;
}
inline bool UpdateDocumentRequest::has_update_mask() const {
  return _internal_has_update_mask();
}
inline const ::google::firestore::v1::DocumentMask& UpdateDocumentRequest::_internal_update_mask() const {
  const ::google::firestore::v1::DocumentMask* p = update_mask_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::DocumentMask*>(
      &::google::firestore::v1::_DocumentMask_default_instance_);
}
inline const ::google::firestore::v1::DocumentMask& UpdateDocumentRequest::update_mask() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.UpdateDocumentRequest.update_mask)
  return _internal_update_mask();
}
inline ::google::firestore::v1::DocumentMask* UpdateDocumentRequest::release_update_mask() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.UpdateDocumentRequest.update_mask)
  
  ::google::firestore::v1::DocumentMask* temp = update_mask_;
  update_mask_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::DocumentMask* UpdateDocumentRequest::_internal_mutable_update_mask() {
  
  if (update_mask_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::DocumentMask>(GetArenaNoVirtual());
    update_mask_ = p;
  }
  return update_mask_;
}
inline ::google::firestore::v1::DocumentMask* UpdateDocumentRequest::mutable_update_mask() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.UpdateDocumentRequest.update_mask)
  return _internal_mutable_update_mask();
}
inline void UpdateDocumentRequest::set_allocated_update_mask(::google::firestore::v1::DocumentMask* update_mask) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_mask_);
  }
  if (update_mask) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      update_mask = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_mask, submessage_arena);
    }
    
  } else {
    
  }
  update_mask_ = update_mask;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.UpdateDocumentRequest.update_mask)
}

// .google.firestore.v1.DocumentMask mask = 3;
inline bool UpdateDocumentRequest::_internal_has_mask() const {
  return this != internal_default_instance() && mask_ != nullptr;
}
inline bool UpdateDocumentRequest::has_mask() const {
  return _internal_has_mask();
}
inline const ::google::firestore::v1::DocumentMask& UpdateDocumentRequest::_internal_mask() const {
  const ::google::firestore::v1::DocumentMask* p = mask_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::DocumentMask*>(
      &::google::firestore::v1::_DocumentMask_default_instance_);
}
inline const ::google::firestore::v1::DocumentMask& UpdateDocumentRequest::mask() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.UpdateDocumentRequest.mask)
  return _internal_mask();
}
inline ::google::firestore::v1::DocumentMask* UpdateDocumentRequest::release_mask() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.UpdateDocumentRequest.mask)
  
  ::google::firestore::v1::DocumentMask* temp = mask_;
  mask_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::DocumentMask* UpdateDocumentRequest::_internal_mutable_mask() {
  
  if (mask_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::DocumentMask>(GetArenaNoVirtual());
    mask_ = p;
  }
  return mask_;
}
inline ::google::firestore::v1::DocumentMask* UpdateDocumentRequest::mutable_mask() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.UpdateDocumentRequest.mask)
  return _internal_mutable_mask();
}
inline void UpdateDocumentRequest::set_allocated_mask(::google::firestore::v1::DocumentMask* mask) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mask_);
  }
  if (mask) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      mask = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mask, submessage_arena);
    }
    
  } else {
    
  }
  mask_ = mask;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.UpdateDocumentRequest.mask)
}

// .google.firestore.v1.Precondition current_document = 4;
inline bool UpdateDocumentRequest::_internal_has_current_document() const {
  return this != internal_default_instance() && current_document_ != nullptr;
}
inline bool UpdateDocumentRequest::has_current_document() const {
  return _internal_has_current_document();
}
inline const ::google::firestore::v1::Precondition& UpdateDocumentRequest::_internal_current_document() const {
  const ::google::firestore::v1::Precondition* p = current_document_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::Precondition*>(
      &::google::firestore::v1::_Precondition_default_instance_);
}
inline const ::google::firestore::v1::Precondition& UpdateDocumentRequest::current_document() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.UpdateDocumentRequest.current_document)
  return _internal_current_document();
}
inline ::google::firestore::v1::Precondition* UpdateDocumentRequest::release_current_document() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.UpdateDocumentRequest.current_document)
  
  ::google::firestore::v1::Precondition* temp = current_document_;
  current_document_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::Precondition* UpdateDocumentRequest::_internal_mutable_current_document() {
  
  if (current_document_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::Precondition>(GetArenaNoVirtual());
    current_document_ = p;
  }
  return current_document_;
}
inline ::google::firestore::v1::Precondition* UpdateDocumentRequest::mutable_current_document() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.UpdateDocumentRequest.current_document)
  return _internal_mutable_current_document();
}
inline void UpdateDocumentRequest::set_allocated_current_document(::google::firestore::v1::Precondition* current_document) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(current_document_);
  }
  if (current_document) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      current_document = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, current_document, submessage_arena);
    }
    
  } else {
    
  }
  current_document_ = current_document;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.UpdateDocumentRequest.current_document)
}

// -------------------------------------------------------------------

// DeleteDocumentRequest

// string name = 1;
inline void DeleteDocumentRequest::clear_name() {
  name_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& DeleteDocumentRequest::name() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.DeleteDocumentRequest.name)
  return _internal_name();
}
inline void DeleteDocumentRequest::set_name(const std::string& value) {
  _internal_set_name(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.DeleteDocumentRequest.name)
}
inline std::string* DeleteDocumentRequest::mutable_name() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.DeleteDocumentRequest.name)
  return _internal_mutable_name();
}
inline const std::string& DeleteDocumentRequest::_internal_name() const {
  return name_.GetNoArena();
}
inline void DeleteDocumentRequest::_internal_set_name(const std::string& value) {
  
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void DeleteDocumentRequest::set_name(std::string&& value) {
  
  name_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.DeleteDocumentRequest.name)
}
inline void DeleteDocumentRequest::set_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.DeleteDocumentRequest.name)
}
inline void DeleteDocumentRequest::set_name(const char* value, size_t size) {
  
  name_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.DeleteDocumentRequest.name)
}
inline std::string* DeleteDocumentRequest::_internal_mutable_name() {
  
  return name_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* DeleteDocumentRequest::release_name() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.DeleteDocumentRequest.name)
  
  return name_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void DeleteDocumentRequest::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  name_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.DeleteDocumentRequest.name)
}

// .google.firestore.v1.Precondition current_document = 2;
inline bool DeleteDocumentRequest::_internal_has_current_document() const {
  return this != internal_default_instance() && current_document_ != nullptr;
}
inline bool DeleteDocumentRequest::has_current_document() const {
  return _internal_has_current_document();
}
inline const ::google::firestore::v1::Precondition& DeleteDocumentRequest::_internal_current_document() const {
  const ::google::firestore::v1::Precondition* p = current_document_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::Precondition*>(
      &::google::firestore::v1::_Precondition_default_instance_);
}
inline const ::google::firestore::v1::Precondition& DeleteDocumentRequest::current_document() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.DeleteDocumentRequest.current_document)
  return _internal_current_document();
}
inline ::google::firestore::v1::Precondition* DeleteDocumentRequest::release_current_document() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.DeleteDocumentRequest.current_document)
  
  ::google::firestore::v1::Precondition* temp = current_document_;
  current_document_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::Precondition* DeleteDocumentRequest::_internal_mutable_current_document() {
  
  if (current_document_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::Precondition>(GetArenaNoVirtual());
    current_document_ = p;
  }
  return current_document_;
}
inline ::google::firestore::v1::Precondition* DeleteDocumentRequest::mutable_current_document() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.DeleteDocumentRequest.current_document)
  return _internal_mutable_current_document();
}
inline void DeleteDocumentRequest::set_allocated_current_document(::google::firestore::v1::Precondition* current_document) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(current_document_);
  }
  if (current_document) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      current_document = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, current_document, submessage_arena);
    }
    
  } else {
    
  }
  current_document_ = current_document;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.DeleteDocumentRequest.current_document)
}

// -------------------------------------------------------------------

// BatchGetDocumentsRequest

// string database = 1;
inline void BatchGetDocumentsRequest::clear_database() {
  database_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& BatchGetDocumentsRequest::database() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsRequest.database)
  return _internal_database();
}
inline void BatchGetDocumentsRequest::set_database(const std::string& value) {
  _internal_set_database(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.BatchGetDocumentsRequest.database)
}
inline std::string* BatchGetDocumentsRequest::mutable_database() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsRequest.database)
  return _internal_mutable_database();
}
inline const std::string& BatchGetDocumentsRequest::_internal_database() const {
  return database_.GetNoArena();
}
inline void BatchGetDocumentsRequest::_internal_set_database(const std::string& value) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void BatchGetDocumentsRequest::set_database(std::string&& value) {
  
  database_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.BatchGetDocumentsRequest.database)
}
inline void BatchGetDocumentsRequest::set_database(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.BatchGetDocumentsRequest.database)
}
inline void BatchGetDocumentsRequest::set_database(const char* value, size_t size) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.BatchGetDocumentsRequest.database)
}
inline std::string* BatchGetDocumentsRequest::_internal_mutable_database() {
  
  return database_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* BatchGetDocumentsRequest::release_database() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsRequest.database)
  
  return database_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void BatchGetDocumentsRequest::set_allocated_database(std::string* database) {
  if (database != nullptr) {
    
  } else {
    
  }
  database_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), database);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BatchGetDocumentsRequest.database)
}

// repeated string documents = 2;
inline int BatchGetDocumentsRequest::_internal_documents_size() const {
  return documents_.size();
}
inline int BatchGetDocumentsRequest::documents_size() const {
  return _internal_documents_size();
}
inline void BatchGetDocumentsRequest::clear_documents() {
  documents_.Clear();
}
inline std::string* BatchGetDocumentsRequest::add_documents() {
  // @@protoc_insertion_point(field_add_mutable:google.firestore.v1.BatchGetDocumentsRequest.documents)
  return _internal_add_documents();
}
inline const std::string& BatchGetDocumentsRequest::_internal_documents(int index) const {
  return documents_.Get(index);
}
inline const std::string& BatchGetDocumentsRequest::documents(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsRequest.documents)
  return _internal_documents(index);
}
inline std::string* BatchGetDocumentsRequest::mutable_documents(int index) {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsRequest.documents)
  return documents_.Mutable(index);
}
inline void BatchGetDocumentsRequest::set_documents(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.BatchGetDocumentsRequest.documents)
  documents_.Mutable(index)->assign(value);
}
inline void BatchGetDocumentsRequest::set_documents(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.BatchGetDocumentsRequest.documents)
  documents_.Mutable(index)->assign(std::move(value));
}
inline void BatchGetDocumentsRequest::set_documents(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  documents_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.BatchGetDocumentsRequest.documents)
}
inline void BatchGetDocumentsRequest::set_documents(int index, const char* value, size_t size) {
  documents_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.BatchGetDocumentsRequest.documents)
}
inline std::string* BatchGetDocumentsRequest::_internal_add_documents() {
  return documents_.Add();
}
inline void BatchGetDocumentsRequest::add_documents(const std::string& value) {
  documents_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:google.firestore.v1.BatchGetDocumentsRequest.documents)
}
inline void BatchGetDocumentsRequest::add_documents(std::string&& value) {
  documents_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:google.firestore.v1.BatchGetDocumentsRequest.documents)
}
inline void BatchGetDocumentsRequest::add_documents(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  documents_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:google.firestore.v1.BatchGetDocumentsRequest.documents)
}
inline void BatchGetDocumentsRequest::add_documents(const char* value, size_t size) {
  documents_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:google.firestore.v1.BatchGetDocumentsRequest.documents)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
BatchGetDocumentsRequest::documents() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.BatchGetDocumentsRequest.documents)
  return documents_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
BatchGetDocumentsRequest::mutable_documents() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.BatchGetDocumentsRequest.documents)
  return &documents_;
}

// .google.firestore.v1.DocumentMask mask = 3;
inline bool BatchGetDocumentsRequest::_internal_has_mask() const {
  return this != internal_default_instance() && mask_ != nullptr;
}
inline bool BatchGetDocumentsRequest::has_mask() const {
  return _internal_has_mask();
}
inline const ::google::firestore::v1::DocumentMask& BatchGetDocumentsRequest::_internal_mask() const {
  const ::google::firestore::v1::DocumentMask* p = mask_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::DocumentMask*>(
      &::google::firestore::v1::_DocumentMask_default_instance_);
}
inline const ::google::firestore::v1::DocumentMask& BatchGetDocumentsRequest::mask() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsRequest.mask)
  return _internal_mask();
}
inline ::google::firestore::v1::DocumentMask* BatchGetDocumentsRequest::release_mask() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsRequest.mask)
  
  ::google::firestore::v1::DocumentMask* temp = mask_;
  mask_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::DocumentMask* BatchGetDocumentsRequest::_internal_mutable_mask() {
  
  if (mask_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::DocumentMask>(GetArenaNoVirtual());
    mask_ = p;
  }
  return mask_;
}
inline ::google::firestore::v1::DocumentMask* BatchGetDocumentsRequest::mutable_mask() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsRequest.mask)
  return _internal_mutable_mask();
}
inline void BatchGetDocumentsRequest::set_allocated_mask(::google::firestore::v1::DocumentMask* mask) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mask_);
  }
  if (mask) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      mask = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mask, submessage_arena);
    }
    
  } else {
    
  }
  mask_ = mask;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BatchGetDocumentsRequest.mask)
}

// bytes transaction = 4;
inline bool BatchGetDocumentsRequest::_internal_has_transaction() const {
  return consistency_selector_case() == kTransaction;
}
inline void BatchGetDocumentsRequest::set_has_transaction() {
  _oneof_case_[0] = kTransaction;
}
inline void BatchGetDocumentsRequest::clear_transaction() {
  if (_internal_has_transaction()) {
    consistency_selector_.transaction_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    clear_has_consistency_selector();
  }
}
inline const std::string& BatchGetDocumentsRequest::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsRequest.transaction)
  return _internal_transaction();
}
inline void BatchGetDocumentsRequest::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.BatchGetDocumentsRequest.transaction)
}
inline std::string* BatchGetDocumentsRequest::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsRequest.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& BatchGetDocumentsRequest::_internal_transaction() const {
  if (_internal_has_transaction()) {
    return consistency_selector_.transaction_.GetNoArena();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void BatchGetDocumentsRequest::_internal_set_transaction(const std::string& value) {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void BatchGetDocumentsRequest::set_transaction(std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.BatchGetDocumentsRequest.transaction)
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.BatchGetDocumentsRequest.transaction)
}
inline void BatchGetDocumentsRequest::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.BatchGetDocumentsRequest.transaction)
}
inline void BatchGetDocumentsRequest::set_transaction(const void* value, size_t size) {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.BatchGetDocumentsRequest.transaction)
}
inline std::string* BatchGetDocumentsRequest::_internal_mutable_transaction() {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return consistency_selector_.transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* BatchGetDocumentsRequest::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsRequest.transaction)
  if (_internal_has_transaction()) {
    clear_has_consistency_selector();
    return consistency_selector_.transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  } else {
    return nullptr;
  }
}
inline void BatchGetDocumentsRequest::set_allocated_transaction(std::string* transaction) {
  if (has_consistency_selector()) {
    clear_consistency_selector();
  }
  if (transaction != nullptr) {
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(transaction);
  }
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BatchGetDocumentsRequest.transaction)
}

// .google.firestore.v1.TransactionOptions new_transaction = 5;
inline bool BatchGetDocumentsRequest::_internal_has_new_transaction() const {
  return consistency_selector_case() == kNewTransaction;
}
inline bool BatchGetDocumentsRequest::has_new_transaction() const {
  return _internal_has_new_transaction();
}
inline void BatchGetDocumentsRequest::set_has_new_transaction() {
  _oneof_case_[0] = kNewTransaction;
}
inline ::google::firestore::v1::TransactionOptions* BatchGetDocumentsRequest::release_new_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsRequest.new_transaction)
  if (_internal_has_new_transaction()) {
    clear_has_consistency_selector();
      ::google::firestore::v1::TransactionOptions* temp = consistency_selector_.new_transaction_;
    consistency_selector_.new_transaction_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::TransactionOptions& BatchGetDocumentsRequest::_internal_new_transaction() const {
  return _internal_has_new_transaction()
      ? *consistency_selector_.new_transaction_
      : *reinterpret_cast< ::google::firestore::v1::TransactionOptions*>(&::google::firestore::v1::_TransactionOptions_default_instance_);
}
inline const ::google::firestore::v1::TransactionOptions& BatchGetDocumentsRequest::new_transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsRequest.new_transaction)
  return _internal_new_transaction();
}
inline ::google::firestore::v1::TransactionOptions* BatchGetDocumentsRequest::_internal_mutable_new_transaction() {
  if (!_internal_has_new_transaction()) {
    clear_consistency_selector();
    set_has_new_transaction();
    consistency_selector_.new_transaction_ = CreateMaybeMessage< ::google::firestore::v1::TransactionOptions >(
        GetArenaNoVirtual());
  }
  return consistency_selector_.new_transaction_;
}
inline ::google::firestore::v1::TransactionOptions* BatchGetDocumentsRequest::mutable_new_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsRequest.new_transaction)
  return _internal_mutable_new_transaction();
}

// .google.protobuf.Timestamp read_time = 7;
inline bool BatchGetDocumentsRequest::_internal_has_read_time() const {
  return consistency_selector_case() == kReadTime;
}
inline bool BatchGetDocumentsRequest::has_read_time() const {
  return _internal_has_read_time();
}
inline void BatchGetDocumentsRequest::set_has_read_time() {
  _oneof_case_[0] = kReadTime;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* BatchGetDocumentsRequest::release_read_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsRequest.read_time)
  if (_internal_has_read_time()) {
    clear_has_consistency_selector();
      PROTOBUF_NAMESPACE_ID::Timestamp* temp = consistency_selector_.read_time_;
    consistency_selector_.read_time_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& BatchGetDocumentsRequest::_internal_read_time() const {
  return _internal_has_read_time()
      ? *consistency_selector_.read_time_
      : *reinterpret_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(&PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& BatchGetDocumentsRequest::read_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsRequest.read_time)
  return _internal_read_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* BatchGetDocumentsRequest::_internal_mutable_read_time() {
  if (!_internal_has_read_time()) {
    clear_consistency_selector();
    set_has_read_time();
    consistency_selector_.read_time_ = CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Timestamp >(
        GetArenaNoVirtual());
  }
  return consistency_selector_.read_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* BatchGetDocumentsRequest::mutable_read_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsRequest.read_time)
  return _internal_mutable_read_time();
}

inline bool BatchGetDocumentsRequest::has_consistency_selector() const {
  return consistency_selector_case() != CONSISTENCY_SELECTOR_NOT_SET;
}
inline void BatchGetDocumentsRequest::clear_has_consistency_selector() {
  _oneof_case_[0] = CONSISTENCY_SELECTOR_NOT_SET;
}
inline BatchGetDocumentsRequest::ConsistencySelectorCase BatchGetDocumentsRequest::consistency_selector_case() const {
  return BatchGetDocumentsRequest::ConsistencySelectorCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// BatchGetDocumentsResponse

// .google.firestore.v1.Document found = 1;
inline bool BatchGetDocumentsResponse::_internal_has_found() const {
  return result_case() == kFound;
}
inline bool BatchGetDocumentsResponse::has_found() const {
  return _internal_has_found();
}
inline void BatchGetDocumentsResponse::set_has_found() {
  _oneof_case_[0] = kFound;
}
inline ::google::firestore::v1::Document* BatchGetDocumentsResponse::release_found() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsResponse.found)
  if (_internal_has_found()) {
    clear_has_result();
      ::google::firestore::v1::Document* temp = result_.found_;
    result_.found_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::Document& BatchGetDocumentsResponse::_internal_found() const {
  return _internal_has_found()
      ? *result_.found_
      : *reinterpret_cast< ::google::firestore::v1::Document*>(&::google::firestore::v1::_Document_default_instance_);
}
inline const ::google::firestore::v1::Document& BatchGetDocumentsResponse::found() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsResponse.found)
  return _internal_found();
}
inline ::google::firestore::v1::Document* BatchGetDocumentsResponse::_internal_mutable_found() {
  if (!_internal_has_found()) {
    clear_result();
    set_has_found();
    result_.found_ = CreateMaybeMessage< ::google::firestore::v1::Document >(
        GetArenaNoVirtual());
  }
  return result_.found_;
}
inline ::google::firestore::v1::Document* BatchGetDocumentsResponse::mutable_found() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsResponse.found)
  return _internal_mutable_found();
}

// string missing = 2;
inline bool BatchGetDocumentsResponse::_internal_has_missing() const {
  return result_case() == kMissing;
}
inline void BatchGetDocumentsResponse::set_has_missing() {
  _oneof_case_[0] = kMissing;
}
inline void BatchGetDocumentsResponse::clear_missing() {
  if (_internal_has_missing()) {
    result_.missing_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    clear_has_result();
  }
}
inline const std::string& BatchGetDocumentsResponse::missing() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsResponse.missing)
  return _internal_missing();
}
inline void BatchGetDocumentsResponse::set_missing(const std::string& value) {
  _internal_set_missing(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.BatchGetDocumentsResponse.missing)
}
inline std::string* BatchGetDocumentsResponse::mutable_missing() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsResponse.missing)
  return _internal_mutable_missing();
}
inline const std::string& BatchGetDocumentsResponse::_internal_missing() const {
  if (_internal_has_missing()) {
    return result_.missing_.GetNoArena();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void BatchGetDocumentsResponse::_internal_set_missing(const std::string& value) {
  if (!_internal_has_missing()) {
    clear_result();
    set_has_missing();
    result_.missing_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  result_.missing_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void BatchGetDocumentsResponse::set_missing(std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.BatchGetDocumentsResponse.missing)
  if (!_internal_has_missing()) {
    clear_result();
    set_has_missing();
    result_.missing_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  result_.missing_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.BatchGetDocumentsResponse.missing)
}
inline void BatchGetDocumentsResponse::set_missing(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_missing()) {
    clear_result();
    set_has_missing();
    result_.missing_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  result_.missing_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.BatchGetDocumentsResponse.missing)
}
inline void BatchGetDocumentsResponse::set_missing(const char* value, size_t size) {
  if (!_internal_has_missing()) {
    clear_result();
    set_has_missing();
    result_.missing_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  result_.missing_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.BatchGetDocumentsResponse.missing)
}
inline std::string* BatchGetDocumentsResponse::_internal_mutable_missing() {
  if (!_internal_has_missing()) {
    clear_result();
    set_has_missing();
    result_.missing_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return result_.missing_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* BatchGetDocumentsResponse::release_missing() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsResponse.missing)
  if (_internal_has_missing()) {
    clear_has_result();
    return result_.missing_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  } else {
    return nullptr;
  }
}
inline void BatchGetDocumentsResponse::set_allocated_missing(std::string* missing) {
  if (has_result()) {
    clear_result();
  }
  if (missing != nullptr) {
    set_has_missing();
    result_.missing_.UnsafeSetDefault(missing);
  }
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BatchGetDocumentsResponse.missing)
}

// bytes transaction = 3;
inline void BatchGetDocumentsResponse::clear_transaction() {
  transaction_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& BatchGetDocumentsResponse::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsResponse.transaction)
  return _internal_transaction();
}
inline void BatchGetDocumentsResponse::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.BatchGetDocumentsResponse.transaction)
}
inline std::string* BatchGetDocumentsResponse::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsResponse.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& BatchGetDocumentsResponse::_internal_transaction() const {
  return transaction_.GetNoArena();
}
inline void BatchGetDocumentsResponse::_internal_set_transaction(const std::string& value) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void BatchGetDocumentsResponse::set_transaction(std::string&& value) {
  
  transaction_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.BatchGetDocumentsResponse.transaction)
}
inline void BatchGetDocumentsResponse::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.BatchGetDocumentsResponse.transaction)
}
inline void BatchGetDocumentsResponse::set_transaction(const void* value, size_t size) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.BatchGetDocumentsResponse.transaction)
}
inline std::string* BatchGetDocumentsResponse::_internal_mutable_transaction() {
  
  return transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* BatchGetDocumentsResponse::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsResponse.transaction)
  
  return transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void BatchGetDocumentsResponse::set_allocated_transaction(std::string* transaction) {
  if (transaction != nullptr) {
    
  } else {
    
  }
  transaction_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), transaction);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BatchGetDocumentsResponse.transaction)
}

// .google.protobuf.Timestamp read_time = 4;
inline bool BatchGetDocumentsResponse::_internal_has_read_time() const {
  return this != internal_default_instance() && read_time_ != nullptr;
}
inline bool BatchGetDocumentsResponse::has_read_time() const {
  return _internal_has_read_time();
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& BatchGetDocumentsResponse::_internal_read_time() const {
  const PROTOBUF_NAMESPACE_ID::Timestamp* p = read_time_;
  return p != nullptr ? *p : *reinterpret_cast<const PROTOBUF_NAMESPACE_ID::Timestamp*>(
      &PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& BatchGetDocumentsResponse::read_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BatchGetDocumentsResponse.read_time)
  return _internal_read_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* BatchGetDocumentsResponse::release_read_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BatchGetDocumentsResponse.read_time)
  
  PROTOBUF_NAMESPACE_ID::Timestamp* temp = read_time_;
  read_time_ = nullptr;
  return temp;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* BatchGetDocumentsResponse::_internal_mutable_read_time() {
  
  if (read_time_ == nullptr) {
    auto* p = CreateMaybeMessage<PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaNoVirtual());
    read_time_ = p;
  }
  return read_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* BatchGetDocumentsResponse::mutable_read_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BatchGetDocumentsResponse.read_time)
  return _internal_mutable_read_time();
}
inline void BatchGetDocumentsResponse::set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(read_time_);
  }
  if (read_time) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(read_time)->GetArena();
    if (message_arena != submessage_arena) {
      read_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, read_time, submessage_arena);
    }
    
  } else {
    
  }
  read_time_ = read_time;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BatchGetDocumentsResponse.read_time)
}

inline bool BatchGetDocumentsResponse::has_result() const {
  return result_case() != RESULT_NOT_SET;
}
inline void BatchGetDocumentsResponse::clear_has_result() {
  _oneof_case_[0] = RESULT_NOT_SET;
}
inline BatchGetDocumentsResponse::ResultCase BatchGetDocumentsResponse::result_case() const {
  return BatchGetDocumentsResponse::ResultCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// BeginTransactionRequest

// string database = 1;
inline void BeginTransactionRequest::clear_database() {
  database_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& BeginTransactionRequest::database() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BeginTransactionRequest.database)
  return _internal_database();
}
inline void BeginTransactionRequest::set_database(const std::string& value) {
  _internal_set_database(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.BeginTransactionRequest.database)
}
inline std::string* BeginTransactionRequest::mutable_database() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BeginTransactionRequest.database)
  return _internal_mutable_database();
}
inline const std::string& BeginTransactionRequest::_internal_database() const {
  return database_.GetNoArena();
}
inline void BeginTransactionRequest::_internal_set_database(const std::string& value) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void BeginTransactionRequest::set_database(std::string&& value) {
  
  database_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.BeginTransactionRequest.database)
}
inline void BeginTransactionRequest::set_database(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.BeginTransactionRequest.database)
}
inline void BeginTransactionRequest::set_database(const char* value, size_t size) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.BeginTransactionRequest.database)
}
inline std::string* BeginTransactionRequest::_internal_mutable_database() {
  
  return database_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* BeginTransactionRequest::release_database() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BeginTransactionRequest.database)
  
  return database_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void BeginTransactionRequest::set_allocated_database(std::string* database) {
  if (database != nullptr) {
    
  } else {
    
  }
  database_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), database);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BeginTransactionRequest.database)
}

// .google.firestore.v1.TransactionOptions options = 2;
inline bool BeginTransactionRequest::_internal_has_options() const {
  return this != internal_default_instance() && options_ != nullptr;
}
inline bool BeginTransactionRequest::has_options() const {
  return _internal_has_options();
}
inline const ::google::firestore::v1::TransactionOptions& BeginTransactionRequest::_internal_options() const {
  const ::google::firestore::v1::TransactionOptions* p = options_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::TransactionOptions*>(
      &::google::firestore::v1::_TransactionOptions_default_instance_);
}
inline const ::google::firestore::v1::TransactionOptions& BeginTransactionRequest::options() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BeginTransactionRequest.options)
  return _internal_options();
}
inline ::google::firestore::v1::TransactionOptions* BeginTransactionRequest::release_options() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BeginTransactionRequest.options)
  
  ::google::firestore::v1::TransactionOptions* temp = options_;
  options_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::TransactionOptions* BeginTransactionRequest::_internal_mutable_options() {
  
  if (options_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::TransactionOptions>(GetArenaNoVirtual());
    options_ = p;
  }
  return options_;
}
inline ::google::firestore::v1::TransactionOptions* BeginTransactionRequest::mutable_options() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BeginTransactionRequest.options)
  return _internal_mutable_options();
}
inline void BeginTransactionRequest::set_allocated_options(::google::firestore::v1::TransactionOptions* options) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(options_);
  }
  if (options) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      options = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, options, submessage_arena);
    }
    
  } else {
    
  }
  options_ = options;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BeginTransactionRequest.options)
}

// -------------------------------------------------------------------

// BeginTransactionResponse

// bytes transaction = 1;
inline void BeginTransactionResponse::clear_transaction() {
  transaction_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& BeginTransactionResponse::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.BeginTransactionResponse.transaction)
  return _internal_transaction();
}
inline void BeginTransactionResponse::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.BeginTransactionResponse.transaction)
}
inline std::string* BeginTransactionResponse::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.BeginTransactionResponse.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& BeginTransactionResponse::_internal_transaction() const {
  return transaction_.GetNoArena();
}
inline void BeginTransactionResponse::_internal_set_transaction(const std::string& value) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void BeginTransactionResponse::set_transaction(std::string&& value) {
  
  transaction_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.BeginTransactionResponse.transaction)
}
inline void BeginTransactionResponse::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.BeginTransactionResponse.transaction)
}
inline void BeginTransactionResponse::set_transaction(const void* value, size_t size) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.BeginTransactionResponse.transaction)
}
inline std::string* BeginTransactionResponse::_internal_mutable_transaction() {
  
  return transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* BeginTransactionResponse::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.BeginTransactionResponse.transaction)
  
  return transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void BeginTransactionResponse::set_allocated_transaction(std::string* transaction) {
  if (transaction != nullptr) {
    
  } else {
    
  }
  transaction_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), transaction);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BeginTransactionResponse.transaction)
}

// -------------------------------------------------------------------

// CommitRequest

// string database = 1;
inline void CommitRequest::clear_database() {
  database_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& CommitRequest::database() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CommitRequest.database)
  return _internal_database();
}
inline void CommitRequest::set_database(const std::string& value) {
  _internal_set_database(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.CommitRequest.database)
}
inline std::string* CommitRequest::mutable_database() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CommitRequest.database)
  return _internal_mutable_database();
}
inline const std::string& CommitRequest::_internal_database() const {
  return database_.GetNoArena();
}
inline void CommitRequest::_internal_set_database(const std::string& value) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void CommitRequest::set_database(std::string&& value) {
  
  database_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.CommitRequest.database)
}
inline void CommitRequest::set_database(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.CommitRequest.database)
}
inline void CommitRequest::set_database(const char* value, size_t size) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.CommitRequest.database)
}
inline std::string* CommitRequest::_internal_mutable_database() {
  
  return database_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* CommitRequest::release_database() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.CommitRequest.database)
  
  return database_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void CommitRequest::set_allocated_database(std::string* database) {
  if (database != nullptr) {
    
  } else {
    
  }
  database_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), database);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.CommitRequest.database)
}

// repeated .google.firestore.v1.Write writes = 2;
inline int CommitRequest::_internal_writes_size() const {
  return writes_.size();
}
inline int CommitRequest::writes_size() const {
  return _internal_writes_size();
}
inline ::google::firestore::v1::Write* CommitRequest::mutable_writes(int index) {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CommitRequest.writes)
  return writes_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >*
CommitRequest::mutable_writes() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.CommitRequest.writes)
  return &writes_;
}
inline const ::google::firestore::v1::Write& CommitRequest::_internal_writes(int index) const {
  return writes_.Get(index);
}
inline const ::google::firestore::v1::Write& CommitRequest::writes(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CommitRequest.writes)
  return _internal_writes(index);
}
inline ::google::firestore::v1::Write* CommitRequest::_internal_add_writes() {
  return writes_.Add();
}
inline ::google::firestore::v1::Write* CommitRequest::add_writes() {
  // @@protoc_insertion_point(field_add:google.firestore.v1.CommitRequest.writes)
  return _internal_add_writes();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >&
CommitRequest::writes() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.CommitRequest.writes)
  return writes_;
}

// bytes transaction = 3;
inline void CommitRequest::clear_transaction() {
  transaction_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& CommitRequest::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CommitRequest.transaction)
  return _internal_transaction();
}
inline void CommitRequest::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.CommitRequest.transaction)
}
inline std::string* CommitRequest::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CommitRequest.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& CommitRequest::_internal_transaction() const {
  return transaction_.GetNoArena();
}
inline void CommitRequest::_internal_set_transaction(const std::string& value) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void CommitRequest::set_transaction(std::string&& value) {
  
  transaction_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.CommitRequest.transaction)
}
inline void CommitRequest::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.CommitRequest.transaction)
}
inline void CommitRequest::set_transaction(const void* value, size_t size) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.CommitRequest.transaction)
}
inline std::string* CommitRequest::_internal_mutable_transaction() {
  
  return transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* CommitRequest::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.CommitRequest.transaction)
  
  return transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void CommitRequest::set_allocated_transaction(std::string* transaction) {
  if (transaction != nullptr) {
    
  } else {
    
  }
  transaction_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), transaction);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.CommitRequest.transaction)
}

// -------------------------------------------------------------------

// CommitResponse

// repeated .google.firestore.v1.WriteResult write_results = 1;
inline int CommitResponse::_internal_write_results_size() const {
  return write_results_.size();
}
inline int CommitResponse::write_results_size() const {
  return _internal_write_results_size();
}
inline ::google::firestore::v1::WriteResult* CommitResponse::mutable_write_results(int index) {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CommitResponse.write_results)
  return write_results_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult >*
CommitResponse::mutable_write_results() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.CommitResponse.write_results)
  return &write_results_;
}
inline const ::google::firestore::v1::WriteResult& CommitResponse::_internal_write_results(int index) const {
  return write_results_.Get(index);
}
inline const ::google::firestore::v1::WriteResult& CommitResponse::write_results(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CommitResponse.write_results)
  return _internal_write_results(index);
}
inline ::google::firestore::v1::WriteResult* CommitResponse::_internal_add_write_results() {
  return write_results_.Add();
}
inline ::google::firestore::v1::WriteResult* CommitResponse::add_write_results() {
  // @@protoc_insertion_point(field_add:google.firestore.v1.CommitResponse.write_results)
  return _internal_add_write_results();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult >&
CommitResponse::write_results() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.CommitResponse.write_results)
  return write_results_;
}

// .google.protobuf.Timestamp commit_time = 2;
inline bool CommitResponse::_internal_has_commit_time() const {
  return this != internal_default_instance() && commit_time_ != nullptr;
}
inline bool CommitResponse::has_commit_time() const {
  return _internal_has_commit_time();
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& CommitResponse::_internal_commit_time() const {
  const PROTOBUF_NAMESPACE_ID::Timestamp* p = commit_time_;
  return p != nullptr ? *p : *reinterpret_cast<const PROTOBUF_NAMESPACE_ID::Timestamp*>(
      &PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& CommitResponse::commit_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.CommitResponse.commit_time)
  return _internal_commit_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* CommitResponse::release_commit_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.CommitResponse.commit_time)
  
  PROTOBUF_NAMESPACE_ID::Timestamp* temp = commit_time_;
  commit_time_ = nullptr;
  return temp;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* CommitResponse::_internal_mutable_commit_time() {
  
  if (commit_time_ == nullptr) {
    auto* p = CreateMaybeMessage<PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaNoVirtual());
    commit_time_ = p;
  }
  return commit_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* CommitResponse::mutable_commit_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.CommitResponse.commit_time)
  return _internal_mutable_commit_time();
}
inline void CommitResponse::set_allocated_commit_time(PROTOBUF_NAMESPACE_ID::Timestamp* commit_time) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(commit_time_);
  }
  if (commit_time) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(commit_time)->GetArena();
    if (message_arena != submessage_arena) {
      commit_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, commit_time, submessage_arena);
    }
    
  } else {
    
  }
  commit_time_ = commit_time;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.CommitResponse.commit_time)
}

// -------------------------------------------------------------------

// RollbackRequest

// string database = 1;
inline void RollbackRequest::clear_database() {
  database_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& RollbackRequest::database() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RollbackRequest.database)
  return _internal_database();
}
inline void RollbackRequest::set_database(const std::string& value) {
  _internal_set_database(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.RollbackRequest.database)
}
inline std::string* RollbackRequest::mutable_database() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RollbackRequest.database)
  return _internal_mutable_database();
}
inline const std::string& RollbackRequest::_internal_database() const {
  return database_.GetNoArena();
}
inline void RollbackRequest::_internal_set_database(const std::string& value) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void RollbackRequest::set_database(std::string&& value) {
  
  database_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.RollbackRequest.database)
}
inline void RollbackRequest::set_database(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.RollbackRequest.database)
}
inline void RollbackRequest::set_database(const char* value, size_t size) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.RollbackRequest.database)
}
inline std::string* RollbackRequest::_internal_mutable_database() {
  
  return database_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* RollbackRequest::release_database() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RollbackRequest.database)
  
  return database_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void RollbackRequest::set_allocated_database(std::string* database) {
  if (database != nullptr) {
    
  } else {
    
  }
  database_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), database);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.RollbackRequest.database)
}

// bytes transaction = 2;
inline void RollbackRequest::clear_transaction() {
  transaction_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& RollbackRequest::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RollbackRequest.transaction)
  return _internal_transaction();
}
inline void RollbackRequest::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.RollbackRequest.transaction)
}
inline std::string* RollbackRequest::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RollbackRequest.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& RollbackRequest::_internal_transaction() const {
  return transaction_.GetNoArena();
}
inline void RollbackRequest::_internal_set_transaction(const std::string& value) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void RollbackRequest::set_transaction(std::string&& value) {
  
  transaction_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.RollbackRequest.transaction)
}
inline void RollbackRequest::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.RollbackRequest.transaction)
}
inline void RollbackRequest::set_transaction(const void* value, size_t size) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.RollbackRequest.transaction)
}
inline std::string* RollbackRequest::_internal_mutable_transaction() {
  
  return transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* RollbackRequest::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RollbackRequest.transaction)
  
  return transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void RollbackRequest::set_allocated_transaction(std::string* transaction) {
  if (transaction != nullptr) {
    
  } else {
    
  }
  transaction_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), transaction);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.RollbackRequest.transaction)
}

// -------------------------------------------------------------------

// RunQueryRequest

// string parent = 1;
inline void RunQueryRequest::clear_parent() {
  parent_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& RunQueryRequest::parent() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryRequest.parent)
  return _internal_parent();
}
inline void RunQueryRequest::set_parent(const std::string& value) {
  _internal_set_parent(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.RunQueryRequest.parent)
}
inline std::string* RunQueryRequest::mutable_parent() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RunQueryRequest.parent)
  return _internal_mutable_parent();
}
inline const std::string& RunQueryRequest::_internal_parent() const {
  return parent_.GetNoArena();
}
inline void RunQueryRequest::_internal_set_parent(const std::string& value) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void RunQueryRequest::set_parent(std::string&& value) {
  
  parent_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.RunQueryRequest.parent)
}
inline void RunQueryRequest::set_parent(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.RunQueryRequest.parent)
}
inline void RunQueryRequest::set_parent(const char* value, size_t size) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.RunQueryRequest.parent)
}
inline std::string* RunQueryRequest::_internal_mutable_parent() {
  
  return parent_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* RunQueryRequest::release_parent() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RunQueryRequest.parent)
  
  return parent_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void RunQueryRequest::set_allocated_parent(std::string* parent) {
  if (parent != nullptr) {
    
  } else {
    
  }
  parent_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), parent);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.RunQueryRequest.parent)
}

// .google.firestore.v1.StructuredQuery structured_query = 2;
inline bool RunQueryRequest::_internal_has_structured_query() const {
  return query_type_case() == kStructuredQuery;
}
inline bool RunQueryRequest::has_structured_query() const {
  return _internal_has_structured_query();
}
inline void RunQueryRequest::set_has_structured_query() {
  _oneof_case_[0] = kStructuredQuery;
}
inline ::google::firestore::v1::StructuredQuery* RunQueryRequest::release_structured_query() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RunQueryRequest.structured_query)
  if (_internal_has_structured_query()) {
    clear_has_query_type();
      ::google::firestore::v1::StructuredQuery* temp = query_type_.structured_query_;
    query_type_.structured_query_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::StructuredQuery& RunQueryRequest::_internal_structured_query() const {
  return _internal_has_structured_query()
      ? *query_type_.structured_query_
      : *reinterpret_cast< ::google::firestore::v1::StructuredQuery*>(&::google::firestore::v1::_StructuredQuery_default_instance_);
}
inline const ::google::firestore::v1::StructuredQuery& RunQueryRequest::structured_query() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryRequest.structured_query)
  return _internal_structured_query();
}
inline ::google::firestore::v1::StructuredQuery* RunQueryRequest::_internal_mutable_structured_query() {
  if (!_internal_has_structured_query()) {
    clear_query_type();
    set_has_structured_query();
    query_type_.structured_query_ = CreateMaybeMessage< ::google::firestore::v1::StructuredQuery >(
        GetArenaNoVirtual());
  }
  return query_type_.structured_query_;
}
inline ::google::firestore::v1::StructuredQuery* RunQueryRequest::mutable_structured_query() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RunQueryRequest.structured_query)
  return _internal_mutable_structured_query();
}

// bytes transaction = 5;
inline bool RunQueryRequest::_internal_has_transaction() const {
  return consistency_selector_case() == kTransaction;
}
inline void RunQueryRequest::set_has_transaction() {
  _oneof_case_[1] = kTransaction;
}
inline void RunQueryRequest::clear_transaction() {
  if (_internal_has_transaction()) {
    consistency_selector_.transaction_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    clear_has_consistency_selector();
  }
}
inline const std::string& RunQueryRequest::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryRequest.transaction)
  return _internal_transaction();
}
inline void RunQueryRequest::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.RunQueryRequest.transaction)
}
inline std::string* RunQueryRequest::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RunQueryRequest.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& RunQueryRequest::_internal_transaction() const {
  if (_internal_has_transaction()) {
    return consistency_selector_.transaction_.GetNoArena();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void RunQueryRequest::_internal_set_transaction(const std::string& value) {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void RunQueryRequest::set_transaction(std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.RunQueryRequest.transaction)
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.RunQueryRequest.transaction)
}
inline void RunQueryRequest::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.RunQueryRequest.transaction)
}
inline void RunQueryRequest::set_transaction(const void* value, size_t size) {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  consistency_selector_.transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.RunQueryRequest.transaction)
}
inline std::string* RunQueryRequest::_internal_mutable_transaction() {
  if (!_internal_has_transaction()) {
    clear_consistency_selector();
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return consistency_selector_.transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* RunQueryRequest::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RunQueryRequest.transaction)
  if (_internal_has_transaction()) {
    clear_has_consistency_selector();
    return consistency_selector_.transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  } else {
    return nullptr;
  }
}
inline void RunQueryRequest::set_allocated_transaction(std::string* transaction) {
  if (has_consistency_selector()) {
    clear_consistency_selector();
  }
  if (transaction != nullptr) {
    set_has_transaction();
    consistency_selector_.transaction_.UnsafeSetDefault(transaction);
  }
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.RunQueryRequest.transaction)
}

// .google.firestore.v1.TransactionOptions new_transaction = 6;
inline bool RunQueryRequest::_internal_has_new_transaction() const {
  return consistency_selector_case() == kNewTransaction;
}
inline bool RunQueryRequest::has_new_transaction() const {
  return _internal_has_new_transaction();
}
inline void RunQueryRequest::set_has_new_transaction() {
  _oneof_case_[1] = kNewTransaction;
}
inline ::google::firestore::v1::TransactionOptions* RunQueryRequest::release_new_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RunQueryRequest.new_transaction)
  if (_internal_has_new_transaction()) {
    clear_has_consistency_selector();
      ::google::firestore::v1::TransactionOptions* temp = consistency_selector_.new_transaction_;
    consistency_selector_.new_transaction_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::TransactionOptions& RunQueryRequest::_internal_new_transaction() const {
  return _internal_has_new_transaction()
      ? *consistency_selector_.new_transaction_
      : *reinterpret_cast< ::google::firestore::v1::TransactionOptions*>(&::google::firestore::v1::_TransactionOptions_default_instance_);
}
inline const ::google::firestore::v1::TransactionOptions& RunQueryRequest::new_transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryRequest.new_transaction)
  return _internal_new_transaction();
}
inline ::google::firestore::v1::TransactionOptions* RunQueryRequest::_internal_mutable_new_transaction() {
  if (!_internal_has_new_transaction()) {
    clear_consistency_selector();
    set_has_new_transaction();
    consistency_selector_.new_transaction_ = CreateMaybeMessage< ::google::firestore::v1::TransactionOptions >(
        GetArenaNoVirtual());
  }
  return consistency_selector_.new_transaction_;
}
inline ::google::firestore::v1::TransactionOptions* RunQueryRequest::mutable_new_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RunQueryRequest.new_transaction)
  return _internal_mutable_new_transaction();
}

// .google.protobuf.Timestamp read_time = 7;
inline bool RunQueryRequest::_internal_has_read_time() const {
  return consistency_selector_case() == kReadTime;
}
inline bool RunQueryRequest::has_read_time() const {
  return _internal_has_read_time();
}
inline void RunQueryRequest::set_has_read_time() {
  _oneof_case_[1] = kReadTime;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* RunQueryRequest::release_read_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RunQueryRequest.read_time)
  if (_internal_has_read_time()) {
    clear_has_consistency_selector();
      PROTOBUF_NAMESPACE_ID::Timestamp* temp = consistency_selector_.read_time_;
    consistency_selector_.read_time_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& RunQueryRequest::_internal_read_time() const {
  return _internal_has_read_time()
      ? *consistency_selector_.read_time_
      : *reinterpret_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(&PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& RunQueryRequest::read_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryRequest.read_time)
  return _internal_read_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* RunQueryRequest::_internal_mutable_read_time() {
  if (!_internal_has_read_time()) {
    clear_consistency_selector();
    set_has_read_time();
    consistency_selector_.read_time_ = CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Timestamp >(
        GetArenaNoVirtual());
  }
  return consistency_selector_.read_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* RunQueryRequest::mutable_read_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RunQueryRequest.read_time)
  return _internal_mutable_read_time();
}

inline bool RunQueryRequest::has_query_type() const {
  return query_type_case() != QUERY_TYPE_NOT_SET;
}
inline void RunQueryRequest::clear_has_query_type() {
  _oneof_case_[0] = QUERY_TYPE_NOT_SET;
}
inline bool RunQueryRequest::has_consistency_selector() const {
  return consistency_selector_case() != CONSISTENCY_SELECTOR_NOT_SET;
}
inline void RunQueryRequest::clear_has_consistency_selector() {
  _oneof_case_[1] = CONSISTENCY_SELECTOR_NOT_SET;
}
inline RunQueryRequest::QueryTypeCase RunQueryRequest::query_type_case() const {
  return RunQueryRequest::QueryTypeCase(_oneof_case_[0]);
}
inline RunQueryRequest::ConsistencySelectorCase RunQueryRequest::consistency_selector_case() const {
  return RunQueryRequest::ConsistencySelectorCase(_oneof_case_[1]);
}
// -------------------------------------------------------------------

// RunQueryResponse

// bytes transaction = 2;
inline void RunQueryResponse::clear_transaction() {
  transaction_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& RunQueryResponse::transaction() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryResponse.transaction)
  return _internal_transaction();
}
inline void RunQueryResponse::set_transaction(const std::string& value) {
  _internal_set_transaction(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.RunQueryResponse.transaction)
}
inline std::string* RunQueryResponse::mutable_transaction() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RunQueryResponse.transaction)
  return _internal_mutable_transaction();
}
inline const std::string& RunQueryResponse::_internal_transaction() const {
  return transaction_.GetNoArena();
}
inline void RunQueryResponse::_internal_set_transaction(const std::string& value) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void RunQueryResponse::set_transaction(std::string&& value) {
  
  transaction_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.RunQueryResponse.transaction)
}
inline void RunQueryResponse::set_transaction(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.RunQueryResponse.transaction)
}
inline void RunQueryResponse::set_transaction(const void* value, size_t size) {
  
  transaction_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.RunQueryResponse.transaction)
}
inline std::string* RunQueryResponse::_internal_mutable_transaction() {
  
  return transaction_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* RunQueryResponse::release_transaction() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RunQueryResponse.transaction)
  
  return transaction_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void RunQueryResponse::set_allocated_transaction(std::string* transaction) {
  if (transaction != nullptr) {
    
  } else {
    
  }
  transaction_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), transaction);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.RunQueryResponse.transaction)
}

// .google.firestore.v1.Document document = 1;
inline bool RunQueryResponse::_internal_has_document() const {
  return this != internal_default_instance() && document_ != nullptr;
}
inline bool RunQueryResponse::has_document() const {
  return _internal_has_document();
}
inline const ::google::firestore::v1::Document& RunQueryResponse::_internal_document() const {
  const ::google::firestore::v1::Document* p = document_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::Document*>(
      &::google::firestore::v1::_Document_default_instance_);
}
inline const ::google::firestore::v1::Document& RunQueryResponse::document() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryResponse.document)
  return _internal_document();
}
inline ::google::firestore::v1::Document* RunQueryResponse::release_document() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RunQueryResponse.document)
  
  ::google::firestore::v1::Document* temp = document_;
  document_ = nullptr;
  return temp;
}
inline ::google::firestore::v1::Document* RunQueryResponse::_internal_mutable_document() {
  
  if (document_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::firestore::v1::Document>(GetArenaNoVirtual());
    document_ = p;
  }
  return document_;
}
inline ::google::firestore::v1::Document* RunQueryResponse::mutable_document() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RunQueryResponse.document)
  return _internal_mutable_document();
}
inline void RunQueryResponse::set_allocated_document(::google::firestore::v1::Document* document) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(document_);
  }
  if (document) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      document = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, document, submessage_arena);
    }
    
  } else {
    
  }
  document_ = document;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.RunQueryResponse.document)
}

// .google.protobuf.Timestamp read_time = 3;
inline bool RunQueryResponse::_internal_has_read_time() const {
  return this != internal_default_instance() && read_time_ != nullptr;
}
inline bool RunQueryResponse::has_read_time() const {
  return _internal_has_read_time();
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& RunQueryResponse::_internal_read_time() const {
  const PROTOBUF_NAMESPACE_ID::Timestamp* p = read_time_;
  return p != nullptr ? *p : *reinterpret_cast<const PROTOBUF_NAMESPACE_ID::Timestamp*>(
      &PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& RunQueryResponse::read_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryResponse.read_time)
  return _internal_read_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* RunQueryResponse::release_read_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.RunQueryResponse.read_time)
  
  PROTOBUF_NAMESPACE_ID::Timestamp* temp = read_time_;
  read_time_ = nullptr;
  return temp;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* RunQueryResponse::_internal_mutable_read_time() {
  
  if (read_time_ == nullptr) {
    auto* p = CreateMaybeMessage<PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaNoVirtual());
    read_time_ = p;
  }
  return read_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* RunQueryResponse::mutable_read_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.RunQueryResponse.read_time)
  return _internal_mutable_read_time();
}
inline void RunQueryResponse::set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(read_time_);
  }
  if (read_time) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(read_time)->GetArena();
    if (message_arena != submessage_arena) {
      read_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, read_time, submessage_arena);
    }
    
  } else {
    
  }
  read_time_ = read_time;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.RunQueryResponse.read_time)
}

// int32 skipped_results = 4;
inline void RunQueryResponse::clear_skipped_results() {
  skipped_results_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RunQueryResponse::_internal_skipped_results() const {
  return skipped_results_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 RunQueryResponse::skipped_results() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.RunQueryResponse.skipped_results)
  return _internal_skipped_results();
}
inline void RunQueryResponse::_internal_set_skipped_results(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  skipped_results_ = value;
}
inline void RunQueryResponse::set_skipped_results(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_skipped_results(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.RunQueryResponse.skipped_results)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// WriteRequest

// string database = 1;
inline void WriteRequest::clear_database() {
  database_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& WriteRequest::database() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.WriteRequest.database)
  return _internal_database();
}
inline void WriteRequest::set_database(const std::string& value) {
  _internal_set_database(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.WriteRequest.database)
}
inline std::string* WriteRequest::mutable_database() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.WriteRequest.database)
  return _internal_mutable_database();
}
inline const std::string& WriteRequest::_internal_database() const {
  return database_.GetNoArena();
}
inline void WriteRequest::_internal_set_database(const std::string& value) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void WriteRequest::set_database(std::string&& value) {
  
  database_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.WriteRequest.database)
}
inline void WriteRequest::set_database(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.WriteRequest.database)
}
inline void WriteRequest::set_database(const char* value, size_t size) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.WriteRequest.database)
}
inline std::string* WriteRequest::_internal_mutable_database() {
  
  return database_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* WriteRequest::release_database() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.WriteRequest.database)
  
  return database_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void WriteRequest::set_allocated_database(std::string* database) {
  if (database != nullptr) {
    
  } else {
    
  }
  database_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), database);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.WriteRequest.database)
}

// string stream_id = 2;
inline void WriteRequest::clear_stream_id() {
  stream_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& WriteRequest::stream_id() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.WriteRequest.stream_id)
  return _internal_stream_id();
}
inline void WriteRequest::set_stream_id(const std::string& value) {
  _internal_set_stream_id(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.WriteRequest.stream_id)
}
inline std::string* WriteRequest::mutable_stream_id() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.WriteRequest.stream_id)
  return _internal_mutable_stream_id();
}
inline const std::string& WriteRequest::_internal_stream_id() const {
  return stream_id_.GetNoArena();
}
inline void WriteRequest::_internal_set_stream_id(const std::string& value) {
  
  stream_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void WriteRequest::set_stream_id(std::string&& value) {
  
  stream_id_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.WriteRequest.stream_id)
}
inline void WriteRequest::set_stream_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  stream_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.WriteRequest.stream_id)
}
inline void WriteRequest::set_stream_id(const char* value, size_t size) {
  
  stream_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.WriteRequest.stream_id)
}
inline std::string* WriteRequest::_internal_mutable_stream_id() {
  
  return stream_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* WriteRequest::release_stream_id() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.WriteRequest.stream_id)
  
  return stream_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void WriteRequest::set_allocated_stream_id(std::string* stream_id) {
  if (stream_id != nullptr) {
    
  } else {
    
  }
  stream_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), stream_id);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.WriteRequest.stream_id)
}

// repeated .google.firestore.v1.Write writes = 3;
inline int WriteRequest::_internal_writes_size() const {
  return writes_.size();
}
inline int WriteRequest::writes_size() const {
  return _internal_writes_size();
}
inline ::google::firestore::v1::Write* WriteRequest::mutable_writes(int index) {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.WriteRequest.writes)
  return writes_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >*
WriteRequest::mutable_writes() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.WriteRequest.writes)
  return &writes_;
}
inline const ::google::firestore::v1::Write& WriteRequest::_internal_writes(int index) const {
  return writes_.Get(index);
}
inline const ::google::firestore::v1::Write& WriteRequest::writes(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.WriteRequest.writes)
  return _internal_writes(index);
}
inline ::google::firestore::v1::Write* WriteRequest::_internal_add_writes() {
  return writes_.Add();
}
inline ::google::firestore::v1::Write* WriteRequest::add_writes() {
  // @@protoc_insertion_point(field_add:google.firestore.v1.WriteRequest.writes)
  return _internal_add_writes();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >&
WriteRequest::writes() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.WriteRequest.writes)
  return writes_;
}

// bytes stream_token = 4;
inline void WriteRequest::clear_stream_token() {
  stream_token_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& WriteRequest::stream_token() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.WriteRequest.stream_token)
  return _internal_stream_token();
}
inline void WriteRequest::set_stream_token(const std::string& value) {
  _internal_set_stream_token(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.WriteRequest.stream_token)
}
inline std::string* WriteRequest::mutable_stream_token() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.WriteRequest.stream_token)
  return _internal_mutable_stream_token();
}
inline const std::string& WriteRequest::_internal_stream_token() const {
  return stream_token_.GetNoArena();
}
inline void WriteRequest::_internal_set_stream_token(const std::string& value) {
  
  stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void WriteRequest::set_stream_token(std::string&& value) {
  
  stream_token_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.WriteRequest.stream_token)
}
inline void WriteRequest::set_stream_token(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.WriteRequest.stream_token)
}
inline void WriteRequest::set_stream_token(const void* value, size_t size) {
  
  stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.WriteRequest.stream_token)
}
inline std::string* WriteRequest::_internal_mutable_stream_token() {
  
  return stream_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* WriteRequest::release_stream_token() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.WriteRequest.stream_token)
  
  return stream_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void WriteRequest::set_allocated_stream_token(std::string* stream_token) {
  if (stream_token != nullptr) {
    
  } else {
    
  }
  stream_token_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), stream_token);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.WriteRequest.stream_token)
}

// map<string, string> labels = 5;
inline int WriteRequest::_internal_labels_size() const {
  return labels_.size();
}
inline int WriteRequest::labels_size() const {
  return _internal_labels_size();
}
inline void WriteRequest::clear_labels() {
  labels_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
WriteRequest::_internal_labels() const {
  return labels_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
WriteRequest::labels() const {
  // @@protoc_insertion_point(field_map:google.firestore.v1.WriteRequest.labels)
  return _internal_labels();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
WriteRequest::_internal_mutable_labels() {
  return labels_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
WriteRequest::mutable_labels() {
  // @@protoc_insertion_point(field_mutable_map:google.firestore.v1.WriteRequest.labels)
  return _internal_mutable_labels();
}

// -------------------------------------------------------------------

// WriteResponse

// string stream_id = 1;
inline void WriteResponse::clear_stream_id() {
  stream_id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& WriteResponse::stream_id() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.WriteResponse.stream_id)
  return _internal_stream_id();
}
inline void WriteResponse::set_stream_id(const std::string& value) {
  _internal_set_stream_id(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.WriteResponse.stream_id)
}
inline std::string* WriteResponse::mutable_stream_id() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.WriteResponse.stream_id)
  return _internal_mutable_stream_id();
}
inline const std::string& WriteResponse::_internal_stream_id() const {
  return stream_id_.GetNoArena();
}
inline void WriteResponse::_internal_set_stream_id(const std::string& value) {
  
  stream_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void WriteResponse::set_stream_id(std::string&& value) {
  
  stream_id_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.WriteResponse.stream_id)
}
inline void WriteResponse::set_stream_id(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  stream_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.WriteResponse.stream_id)
}
inline void WriteResponse::set_stream_id(const char* value, size_t size) {
  
  stream_id_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.WriteResponse.stream_id)
}
inline std::string* WriteResponse::_internal_mutable_stream_id() {
  
  return stream_id_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* WriteResponse::release_stream_id() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.WriteResponse.stream_id)
  
  return stream_id_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void WriteResponse::set_allocated_stream_id(std::string* stream_id) {
  if (stream_id != nullptr) {
    
  } else {
    
  }
  stream_id_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), stream_id);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.WriteResponse.stream_id)
}

// bytes stream_token = 2;
inline void WriteResponse::clear_stream_token() {
  stream_token_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& WriteResponse::stream_token() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.WriteResponse.stream_token)
  return _internal_stream_token();
}
inline void WriteResponse::set_stream_token(const std::string& value) {
  _internal_set_stream_token(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.WriteResponse.stream_token)
}
inline std::string* WriteResponse::mutable_stream_token() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.WriteResponse.stream_token)
  return _internal_mutable_stream_token();
}
inline const std::string& WriteResponse::_internal_stream_token() const {
  return stream_token_.GetNoArena();
}
inline void WriteResponse::_internal_set_stream_token(const std::string& value) {
  
  stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void WriteResponse::set_stream_token(std::string&& value) {
  
  stream_token_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.WriteResponse.stream_token)
}
inline void WriteResponse::set_stream_token(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.WriteResponse.stream_token)
}
inline void WriteResponse::set_stream_token(const void* value, size_t size) {
  
  stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.WriteResponse.stream_token)
}
inline std::string* WriteResponse::_internal_mutable_stream_token() {
  
  return stream_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* WriteResponse::release_stream_token() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.WriteResponse.stream_token)
  
  return stream_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void WriteResponse::set_allocated_stream_token(std::string* stream_token) {
  if (stream_token != nullptr) {
    
  } else {
    
  }
  stream_token_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), stream_token);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.WriteResponse.stream_token)
}

// repeated .google.firestore.v1.WriteResult write_results = 3;
inline int WriteResponse::_internal_write_results_size() const {
  return write_results_.size();
}
inline int WriteResponse::write_results_size() const {
  return _internal_write_results_size();
}
inline ::google::firestore::v1::WriteResult* WriteResponse::mutable_write_results(int index) {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.WriteResponse.write_results)
  return write_results_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult >*
WriteResponse::mutable_write_results() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.WriteResponse.write_results)
  return &write_results_;
}
inline const ::google::firestore::v1::WriteResult& WriteResponse::_internal_write_results(int index) const {
  return write_results_.Get(index);
}
inline const ::google::firestore::v1::WriteResult& WriteResponse::write_results(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.WriteResponse.write_results)
  return _internal_write_results(index);
}
inline ::google::firestore::v1::WriteResult* WriteResponse::_internal_add_write_results() {
  return write_results_.Add();
}
inline ::google::firestore::v1::WriteResult* WriteResponse::add_write_results() {
  // @@protoc_insertion_point(field_add:google.firestore.v1.WriteResponse.write_results)
  return _internal_add_write_results();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::WriteResult >&
WriteResponse::write_results() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.WriteResponse.write_results)
  return write_results_;
}

// .google.protobuf.Timestamp commit_time = 4;
inline bool WriteResponse::_internal_has_commit_time() const {
  return this != internal_default_instance() && commit_time_ != nullptr;
}
inline bool WriteResponse::has_commit_time() const {
  return _internal_has_commit_time();
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& WriteResponse::_internal_commit_time() const {
  const PROTOBUF_NAMESPACE_ID::Timestamp* p = commit_time_;
  return p != nullptr ? *p : *reinterpret_cast<const PROTOBUF_NAMESPACE_ID::Timestamp*>(
      &PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& WriteResponse::commit_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.WriteResponse.commit_time)
  return _internal_commit_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* WriteResponse::release_commit_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.WriteResponse.commit_time)
  
  PROTOBUF_NAMESPACE_ID::Timestamp* temp = commit_time_;
  commit_time_ = nullptr;
  return temp;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* WriteResponse::_internal_mutable_commit_time() {
  
  if (commit_time_ == nullptr) {
    auto* p = CreateMaybeMessage<PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaNoVirtual());
    commit_time_ = p;
  }
  return commit_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* WriteResponse::mutable_commit_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.WriteResponse.commit_time)
  return _internal_mutable_commit_time();
}
inline void WriteResponse::set_allocated_commit_time(PROTOBUF_NAMESPACE_ID::Timestamp* commit_time) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(commit_time_);
  }
  if (commit_time) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(commit_time)->GetArena();
    if (message_arena != submessage_arena) {
      commit_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, commit_time, submessage_arena);
    }
    
  } else {
    
  }
  commit_time_ = commit_time;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.WriteResponse.commit_time)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// ListenRequest

// string database = 1;
inline void ListenRequest::clear_database() {
  database_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListenRequest::database() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListenRequest.database)
  return _internal_database();
}
inline void ListenRequest::set_database(const std::string& value) {
  _internal_set_database(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListenRequest.database)
}
inline std::string* ListenRequest::mutable_database() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListenRequest.database)
  return _internal_mutable_database();
}
inline const std::string& ListenRequest::_internal_database() const {
  return database_.GetNoArena();
}
inline void ListenRequest::_internal_set_database(const std::string& value) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListenRequest::set_database(std::string&& value) {
  
  database_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListenRequest.database)
}
inline void ListenRequest::set_database(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListenRequest.database)
}
inline void ListenRequest::set_database(const char* value, size_t size) {
  
  database_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListenRequest.database)
}
inline std::string* ListenRequest::_internal_mutable_database() {
  
  return database_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListenRequest::release_database() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListenRequest.database)
  
  return database_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListenRequest::set_allocated_database(std::string* database) {
  if (database != nullptr) {
    
  } else {
    
  }
  database_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), database);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListenRequest.database)
}

// .google.firestore.v1.Target add_target = 2;
inline bool ListenRequest::_internal_has_add_target() const {
  return target_change_case() == kAddTarget;
}
inline bool ListenRequest::has_add_target() const {
  return _internal_has_add_target();
}
inline void ListenRequest::set_has_add_target() {
  _oneof_case_[0] = kAddTarget;
}
inline void ListenRequest::clear_add_target() {
  if (_internal_has_add_target()) {
    delete target_change_.add_target_;
    clear_has_target_change();
  }
}
inline ::google::firestore::v1::Target* ListenRequest::release_add_target() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListenRequest.add_target)
  if (_internal_has_add_target()) {
    clear_has_target_change();
      ::google::firestore::v1::Target* temp = target_change_.add_target_;
    target_change_.add_target_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::Target& ListenRequest::_internal_add_target() const {
  return _internal_has_add_target()
      ? *target_change_.add_target_
      : *reinterpret_cast< ::google::firestore::v1::Target*>(&::google::firestore::v1::_Target_default_instance_);
}
inline const ::google::firestore::v1::Target& ListenRequest::add_target() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListenRequest.add_target)
  return _internal_add_target();
}
inline ::google::firestore::v1::Target* ListenRequest::_internal_mutable_add_target() {
  if (!_internal_has_add_target()) {
    clear_target_change();
    set_has_add_target();
    target_change_.add_target_ = CreateMaybeMessage< ::google::firestore::v1::Target >(
        GetArenaNoVirtual());
  }
  return target_change_.add_target_;
}
inline ::google::firestore::v1::Target* ListenRequest::mutable_add_target() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListenRequest.add_target)
  return _internal_mutable_add_target();
}

// int32 remove_target = 3;
inline bool ListenRequest::_internal_has_remove_target() const {
  return target_change_case() == kRemoveTarget;
}
inline void ListenRequest::set_has_remove_target() {
  _oneof_case_[0] = kRemoveTarget;
}
inline void ListenRequest::clear_remove_target() {
  if (_internal_has_remove_target()) {
    target_change_.remove_target_ = 0;
    clear_has_target_change();
  }
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ListenRequest::_internal_remove_target() const {
  if (_internal_has_remove_target()) {
    return target_change_.remove_target_;
  }
  return 0;
}
inline void ListenRequest::_internal_set_remove_target(::PROTOBUF_NAMESPACE_ID::int32 value) {
  if (!_internal_has_remove_target()) {
    clear_target_change();
    set_has_remove_target();
  }
  target_change_.remove_target_ = value;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ListenRequest::remove_target() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListenRequest.remove_target)
  return _internal_remove_target();
}
inline void ListenRequest::set_remove_target(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_remove_target(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListenRequest.remove_target)
}

// map<string, string> labels = 4;
inline int ListenRequest::_internal_labels_size() const {
  return labels_.size();
}
inline int ListenRequest::labels_size() const {
  return _internal_labels_size();
}
inline void ListenRequest::clear_labels() {
  labels_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
ListenRequest::_internal_labels() const {
  return labels_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
ListenRequest::labels() const {
  // @@protoc_insertion_point(field_map:google.firestore.v1.ListenRequest.labels)
  return _internal_labels();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
ListenRequest::_internal_mutable_labels() {
  return labels_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
ListenRequest::mutable_labels() {
  // @@protoc_insertion_point(field_mutable_map:google.firestore.v1.ListenRequest.labels)
  return _internal_mutable_labels();
}

inline bool ListenRequest::has_target_change() const {
  return target_change_case() != TARGET_CHANGE_NOT_SET;
}
inline void ListenRequest::clear_has_target_change() {
  _oneof_case_[0] = TARGET_CHANGE_NOT_SET;
}
inline ListenRequest::TargetChangeCase ListenRequest::target_change_case() const {
  return ListenRequest::TargetChangeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// ListenResponse

// .google.firestore.v1.TargetChange target_change = 2;
inline bool ListenResponse::_internal_has_target_change() const {
  return response_type_case() == kTargetChange;
}
inline bool ListenResponse::has_target_change() const {
  return _internal_has_target_change();
}
inline void ListenResponse::set_has_target_change() {
  _oneof_case_[0] = kTargetChange;
}
inline void ListenResponse::clear_target_change() {
  if (_internal_has_target_change()) {
    delete response_type_.target_change_;
    clear_has_response_type();
  }
}
inline ::google::firestore::v1::TargetChange* ListenResponse::release_target_change() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListenResponse.target_change)
  if (_internal_has_target_change()) {
    clear_has_response_type();
      ::google::firestore::v1::TargetChange* temp = response_type_.target_change_;
    response_type_.target_change_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::TargetChange& ListenResponse::_internal_target_change() const {
  return _internal_has_target_change()
      ? *response_type_.target_change_
      : *reinterpret_cast< ::google::firestore::v1::TargetChange*>(&::google::firestore::v1::_TargetChange_default_instance_);
}
inline const ::google::firestore::v1::TargetChange& ListenResponse::target_change() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListenResponse.target_change)
  return _internal_target_change();
}
inline ::google::firestore::v1::TargetChange* ListenResponse::_internal_mutable_target_change() {
  if (!_internal_has_target_change()) {
    clear_response_type();
    set_has_target_change();
    response_type_.target_change_ = CreateMaybeMessage< ::google::firestore::v1::TargetChange >(
        GetArenaNoVirtual());
  }
  return response_type_.target_change_;
}
inline ::google::firestore::v1::TargetChange* ListenResponse::mutable_target_change() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListenResponse.target_change)
  return _internal_mutable_target_change();
}

// .google.firestore.v1.DocumentChange document_change = 3;
inline bool ListenResponse::_internal_has_document_change() const {
  return response_type_case() == kDocumentChange;
}
inline bool ListenResponse::has_document_change() const {
  return _internal_has_document_change();
}
inline void ListenResponse::set_has_document_change() {
  _oneof_case_[0] = kDocumentChange;
}
inline ::google::firestore::v1::DocumentChange* ListenResponse::release_document_change() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListenResponse.document_change)
  if (_internal_has_document_change()) {
    clear_has_response_type();
      ::google::firestore::v1::DocumentChange* temp = response_type_.document_change_;
    response_type_.document_change_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::DocumentChange& ListenResponse::_internal_document_change() const {
  return _internal_has_document_change()
      ? *response_type_.document_change_
      : *reinterpret_cast< ::google::firestore::v1::DocumentChange*>(&::google::firestore::v1::_DocumentChange_default_instance_);
}
inline const ::google::firestore::v1::DocumentChange& ListenResponse::document_change() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListenResponse.document_change)
  return _internal_document_change();
}
inline ::google::firestore::v1::DocumentChange* ListenResponse::_internal_mutable_document_change() {
  if (!_internal_has_document_change()) {
    clear_response_type();
    set_has_document_change();
    response_type_.document_change_ = CreateMaybeMessage< ::google::firestore::v1::DocumentChange >(
        GetArenaNoVirtual());
  }
  return response_type_.document_change_;
}
inline ::google::firestore::v1::DocumentChange* ListenResponse::mutable_document_change() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListenResponse.document_change)
  return _internal_mutable_document_change();
}

// .google.firestore.v1.DocumentDelete document_delete = 4;
inline bool ListenResponse::_internal_has_document_delete() const {
  return response_type_case() == kDocumentDelete;
}
inline bool ListenResponse::has_document_delete() const {
  return _internal_has_document_delete();
}
inline void ListenResponse::set_has_document_delete() {
  _oneof_case_[0] = kDocumentDelete;
}
inline ::google::firestore::v1::DocumentDelete* ListenResponse::release_document_delete() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListenResponse.document_delete)
  if (_internal_has_document_delete()) {
    clear_has_response_type();
      ::google::firestore::v1::DocumentDelete* temp = response_type_.document_delete_;
    response_type_.document_delete_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::DocumentDelete& ListenResponse::_internal_document_delete() const {
  return _internal_has_document_delete()
      ? *response_type_.document_delete_
      : *reinterpret_cast< ::google::firestore::v1::DocumentDelete*>(&::google::firestore::v1::_DocumentDelete_default_instance_);
}
inline const ::google::firestore::v1::DocumentDelete& ListenResponse::document_delete() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListenResponse.document_delete)
  return _internal_document_delete();
}
inline ::google::firestore::v1::DocumentDelete* ListenResponse::_internal_mutable_document_delete() {
  if (!_internal_has_document_delete()) {
    clear_response_type();
    set_has_document_delete();
    response_type_.document_delete_ = CreateMaybeMessage< ::google::firestore::v1::DocumentDelete >(
        GetArenaNoVirtual());
  }
  return response_type_.document_delete_;
}
inline ::google::firestore::v1::DocumentDelete* ListenResponse::mutable_document_delete() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListenResponse.document_delete)
  return _internal_mutable_document_delete();
}

// .google.firestore.v1.DocumentRemove document_remove = 6;
inline bool ListenResponse::_internal_has_document_remove() const {
  return response_type_case() == kDocumentRemove;
}
inline bool ListenResponse::has_document_remove() const {
  return _internal_has_document_remove();
}
inline void ListenResponse::set_has_document_remove() {
  _oneof_case_[0] = kDocumentRemove;
}
inline ::google::firestore::v1::DocumentRemove* ListenResponse::release_document_remove() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListenResponse.document_remove)
  if (_internal_has_document_remove()) {
    clear_has_response_type();
      ::google::firestore::v1::DocumentRemove* temp = response_type_.document_remove_;
    response_type_.document_remove_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::DocumentRemove& ListenResponse::_internal_document_remove() const {
  return _internal_has_document_remove()
      ? *response_type_.document_remove_
      : *reinterpret_cast< ::google::firestore::v1::DocumentRemove*>(&::google::firestore::v1::_DocumentRemove_default_instance_);
}
inline const ::google::firestore::v1::DocumentRemove& ListenResponse::document_remove() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListenResponse.document_remove)
  return _internal_document_remove();
}
inline ::google::firestore::v1::DocumentRemove* ListenResponse::_internal_mutable_document_remove() {
  if (!_internal_has_document_remove()) {
    clear_response_type();
    set_has_document_remove();
    response_type_.document_remove_ = CreateMaybeMessage< ::google::firestore::v1::DocumentRemove >(
        GetArenaNoVirtual());
  }
  return response_type_.document_remove_;
}
inline ::google::firestore::v1::DocumentRemove* ListenResponse::mutable_document_remove() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListenResponse.document_remove)
  return _internal_mutable_document_remove();
}

// .google.firestore.v1.ExistenceFilter filter = 5;
inline bool ListenResponse::_internal_has_filter() const {
  return response_type_case() == kFilter;
}
inline bool ListenResponse::has_filter() const {
  return _internal_has_filter();
}
inline void ListenResponse::set_has_filter() {
  _oneof_case_[0] = kFilter;
}
inline ::google::firestore::v1::ExistenceFilter* ListenResponse::release_filter() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListenResponse.filter)
  if (_internal_has_filter()) {
    clear_has_response_type();
      ::google::firestore::v1::ExistenceFilter* temp = response_type_.filter_;
    response_type_.filter_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::ExistenceFilter& ListenResponse::_internal_filter() const {
  return _internal_has_filter()
      ? *response_type_.filter_
      : *reinterpret_cast< ::google::firestore::v1::ExistenceFilter*>(&::google::firestore::v1::_ExistenceFilter_default_instance_);
}
inline const ::google::firestore::v1::ExistenceFilter& ListenResponse::filter() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListenResponse.filter)
  return _internal_filter();
}
inline ::google::firestore::v1::ExistenceFilter* ListenResponse::_internal_mutable_filter() {
  if (!_internal_has_filter()) {
    clear_response_type();
    set_has_filter();
    response_type_.filter_ = CreateMaybeMessage< ::google::firestore::v1::ExistenceFilter >(
        GetArenaNoVirtual());
  }
  return response_type_.filter_;
}
inline ::google::firestore::v1::ExistenceFilter* ListenResponse::mutable_filter() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListenResponse.filter)
  return _internal_mutable_filter();
}

inline bool ListenResponse::has_response_type() const {
  return response_type_case() != RESPONSE_TYPE_NOT_SET;
}
inline void ListenResponse::clear_has_response_type() {
  _oneof_case_[0] = RESPONSE_TYPE_NOT_SET;
}
inline ListenResponse::ResponseTypeCase ListenResponse::response_type_case() const {
  return ListenResponse::ResponseTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// Target_DocumentsTarget

// repeated string documents = 2;
inline int Target_DocumentsTarget::_internal_documents_size() const {
  return documents_.size();
}
inline int Target_DocumentsTarget::documents_size() const {
  return _internal_documents_size();
}
inline void Target_DocumentsTarget::clear_documents() {
  documents_.Clear();
}
inline std::string* Target_DocumentsTarget::add_documents() {
  // @@protoc_insertion_point(field_add_mutable:google.firestore.v1.Target.DocumentsTarget.documents)
  return _internal_add_documents();
}
inline const std::string& Target_DocumentsTarget::_internal_documents(int index) const {
  return documents_.Get(index);
}
inline const std::string& Target_DocumentsTarget::documents(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.DocumentsTarget.documents)
  return _internal_documents(index);
}
inline std::string* Target_DocumentsTarget::mutable_documents(int index) {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.Target.DocumentsTarget.documents)
  return documents_.Mutable(index);
}
inline void Target_DocumentsTarget::set_documents(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.Target.DocumentsTarget.documents)
  documents_.Mutable(index)->assign(value);
}
inline void Target_DocumentsTarget::set_documents(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.Target.DocumentsTarget.documents)
  documents_.Mutable(index)->assign(std::move(value));
}
inline void Target_DocumentsTarget::set_documents(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  documents_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.Target.DocumentsTarget.documents)
}
inline void Target_DocumentsTarget::set_documents(int index, const char* value, size_t size) {
  documents_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.Target.DocumentsTarget.documents)
}
inline std::string* Target_DocumentsTarget::_internal_add_documents() {
  return documents_.Add();
}
inline void Target_DocumentsTarget::add_documents(const std::string& value) {
  documents_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:google.firestore.v1.Target.DocumentsTarget.documents)
}
inline void Target_DocumentsTarget::add_documents(std::string&& value) {
  documents_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:google.firestore.v1.Target.DocumentsTarget.documents)
}
inline void Target_DocumentsTarget::add_documents(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  documents_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:google.firestore.v1.Target.DocumentsTarget.documents)
}
inline void Target_DocumentsTarget::add_documents(const char* value, size_t size) {
  documents_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:google.firestore.v1.Target.DocumentsTarget.documents)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
Target_DocumentsTarget::documents() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.Target.DocumentsTarget.documents)
  return documents_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
Target_DocumentsTarget::mutable_documents() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.Target.DocumentsTarget.documents)
  return &documents_;
}

// -------------------------------------------------------------------

// Target_QueryTarget

// string parent = 1;
inline void Target_QueryTarget::clear_parent() {
  parent_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& Target_QueryTarget::parent() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.QueryTarget.parent)
  return _internal_parent();
}
inline void Target_QueryTarget::set_parent(const std::string& value) {
  _internal_set_parent(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.Target.QueryTarget.parent)
}
inline std::string* Target_QueryTarget::mutable_parent() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.Target.QueryTarget.parent)
  return _internal_mutable_parent();
}
inline const std::string& Target_QueryTarget::_internal_parent() const {
  return parent_.GetNoArena();
}
inline void Target_QueryTarget::_internal_set_parent(const std::string& value) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void Target_QueryTarget::set_parent(std::string&& value) {
  
  parent_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.Target.QueryTarget.parent)
}
inline void Target_QueryTarget::set_parent(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.Target.QueryTarget.parent)
}
inline void Target_QueryTarget::set_parent(const char* value, size_t size) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.Target.QueryTarget.parent)
}
inline std::string* Target_QueryTarget::_internal_mutable_parent() {
  
  return parent_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* Target_QueryTarget::release_parent() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.Target.QueryTarget.parent)
  
  return parent_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void Target_QueryTarget::set_allocated_parent(std::string* parent) {
  if (parent != nullptr) {
    
  } else {
    
  }
  parent_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), parent);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.Target.QueryTarget.parent)
}

// .google.firestore.v1.StructuredQuery structured_query = 2;
inline bool Target_QueryTarget::_internal_has_structured_query() const {
  return query_type_case() == kStructuredQuery;
}
inline bool Target_QueryTarget::has_structured_query() const {
  return _internal_has_structured_query();
}
inline void Target_QueryTarget::set_has_structured_query() {
  _oneof_case_[0] = kStructuredQuery;
}
inline ::google::firestore::v1::StructuredQuery* Target_QueryTarget::release_structured_query() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.Target.QueryTarget.structured_query)
  if (_internal_has_structured_query()) {
    clear_has_query_type();
      ::google::firestore::v1::StructuredQuery* temp = query_type_.structured_query_;
    query_type_.structured_query_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::StructuredQuery& Target_QueryTarget::_internal_structured_query() const {
  return _internal_has_structured_query()
      ? *query_type_.structured_query_
      : *reinterpret_cast< ::google::firestore::v1::StructuredQuery*>(&::google::firestore::v1::_StructuredQuery_default_instance_);
}
inline const ::google::firestore::v1::StructuredQuery& Target_QueryTarget::structured_query() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.QueryTarget.structured_query)
  return _internal_structured_query();
}
inline ::google::firestore::v1::StructuredQuery* Target_QueryTarget::_internal_mutable_structured_query() {
  if (!_internal_has_structured_query()) {
    clear_query_type();
    set_has_structured_query();
    query_type_.structured_query_ = CreateMaybeMessage< ::google::firestore::v1::StructuredQuery >(
        GetArenaNoVirtual());
  }
  return query_type_.structured_query_;
}
inline ::google::firestore::v1::StructuredQuery* Target_QueryTarget::mutable_structured_query() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.Target.QueryTarget.structured_query)
  return _internal_mutable_structured_query();
}

inline bool Target_QueryTarget::has_query_type() const {
  return query_type_case() != QUERY_TYPE_NOT_SET;
}
inline void Target_QueryTarget::clear_has_query_type() {
  _oneof_case_[0] = QUERY_TYPE_NOT_SET;
}
inline Target_QueryTarget::QueryTypeCase Target_QueryTarget::query_type_case() const {
  return Target_QueryTarget::QueryTypeCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// Target

// .google.firestore.v1.Target.QueryTarget query = 2;
inline bool Target::_internal_has_query() const {
  return target_type_case() == kQuery;
}
inline bool Target::has_query() const {
  return _internal_has_query();
}
inline void Target::set_has_query() {
  _oneof_case_[0] = kQuery;
}
inline void Target::clear_query() {
  if (_internal_has_query()) {
    delete target_type_.query_;
    clear_has_target_type();
  }
}
inline ::google::firestore::v1::Target_QueryTarget* Target::release_query() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.Target.query)
  if (_internal_has_query()) {
    clear_has_target_type();
      ::google::firestore::v1::Target_QueryTarget* temp = target_type_.query_;
    target_type_.query_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::Target_QueryTarget& Target::_internal_query() const {
  return _internal_has_query()
      ? *target_type_.query_
      : *reinterpret_cast< ::google::firestore::v1::Target_QueryTarget*>(&::google::firestore::v1::_Target_QueryTarget_default_instance_);
}
inline const ::google::firestore::v1::Target_QueryTarget& Target::query() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.query)
  return _internal_query();
}
inline ::google::firestore::v1::Target_QueryTarget* Target::_internal_mutable_query() {
  if (!_internal_has_query()) {
    clear_target_type();
    set_has_query();
    target_type_.query_ = CreateMaybeMessage< ::google::firestore::v1::Target_QueryTarget >(
        GetArenaNoVirtual());
  }
  return target_type_.query_;
}
inline ::google::firestore::v1::Target_QueryTarget* Target::mutable_query() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.Target.query)
  return _internal_mutable_query();
}

// .google.firestore.v1.Target.DocumentsTarget documents = 3;
inline bool Target::_internal_has_documents() const {
  return target_type_case() == kDocuments;
}
inline bool Target::has_documents() const {
  return _internal_has_documents();
}
inline void Target::set_has_documents() {
  _oneof_case_[0] = kDocuments;
}
inline void Target::clear_documents() {
  if (_internal_has_documents()) {
    delete target_type_.documents_;
    clear_has_target_type();
  }
}
inline ::google::firestore::v1::Target_DocumentsTarget* Target::release_documents() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.Target.documents)
  if (_internal_has_documents()) {
    clear_has_target_type();
      ::google::firestore::v1::Target_DocumentsTarget* temp = target_type_.documents_;
    target_type_.documents_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::firestore::v1::Target_DocumentsTarget& Target::_internal_documents() const {
  return _internal_has_documents()
      ? *target_type_.documents_
      : *reinterpret_cast< ::google::firestore::v1::Target_DocumentsTarget*>(&::google::firestore::v1::_Target_DocumentsTarget_default_instance_);
}
inline const ::google::firestore::v1::Target_DocumentsTarget& Target::documents() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.documents)
  return _internal_documents();
}
inline ::google::firestore::v1::Target_DocumentsTarget* Target::_internal_mutable_documents() {
  if (!_internal_has_documents()) {
    clear_target_type();
    set_has_documents();
    target_type_.documents_ = CreateMaybeMessage< ::google::firestore::v1::Target_DocumentsTarget >(
        GetArenaNoVirtual());
  }
  return target_type_.documents_;
}
inline ::google::firestore::v1::Target_DocumentsTarget* Target::mutable_documents() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.Target.documents)
  return _internal_mutable_documents();
}

// bytes resume_token = 4;
inline bool Target::_internal_has_resume_token() const {
  return resume_type_case() == kResumeToken;
}
inline void Target::set_has_resume_token() {
  _oneof_case_[1] = kResumeToken;
}
inline void Target::clear_resume_token() {
  if (_internal_has_resume_token()) {
    resume_type_.resume_token_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    clear_has_resume_type();
  }
}
inline const std::string& Target::resume_token() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.resume_token)
  return _internal_resume_token();
}
inline void Target::set_resume_token(const std::string& value) {
  _internal_set_resume_token(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.Target.resume_token)
}
inline std::string* Target::mutable_resume_token() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.Target.resume_token)
  return _internal_mutable_resume_token();
}
inline const std::string& Target::_internal_resume_token() const {
  if (_internal_has_resume_token()) {
    return resume_type_.resume_token_.GetNoArena();
  }
  return *&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
}
inline void Target::_internal_set_resume_token(const std::string& value) {
  if (!_internal_has_resume_token()) {
    clear_resume_type();
    set_has_resume_token();
    resume_type_.resume_token_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  resume_type_.resume_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void Target::set_resume_token(std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.Target.resume_token)
  if (!_internal_has_resume_token()) {
    clear_resume_type();
    set_has_resume_token();
    resume_type_.resume_token_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  resume_type_.resume_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.Target.resume_token)
}
inline void Target::set_resume_token(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  if (!_internal_has_resume_token()) {
    clear_resume_type();
    set_has_resume_token();
    resume_type_.resume_token_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  resume_type_.resume_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.Target.resume_token)
}
inline void Target::set_resume_token(const void* value, size_t size) {
  if (!_internal_has_resume_token()) {
    clear_resume_type();
    set_has_resume_token();
    resume_type_.resume_token_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  resume_type_.resume_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.Target.resume_token)
}
inline std::string* Target::_internal_mutable_resume_token() {
  if (!_internal_has_resume_token()) {
    clear_resume_type();
    set_has_resume_token();
    resume_type_.resume_token_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  }
  return resume_type_.resume_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* Target::release_resume_token() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.Target.resume_token)
  if (_internal_has_resume_token()) {
    clear_has_resume_type();
    return resume_type_.resume_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  } else {
    return nullptr;
  }
}
inline void Target::set_allocated_resume_token(std::string* resume_token) {
  if (has_resume_type()) {
    clear_resume_type();
  }
  if (resume_token != nullptr) {
    set_has_resume_token();
    resume_type_.resume_token_.UnsafeSetDefault(resume_token);
  }
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.Target.resume_token)
}

// .google.protobuf.Timestamp read_time = 11;
inline bool Target::_internal_has_read_time() const {
  return resume_type_case() == kReadTime;
}
inline bool Target::has_read_time() const {
  return _internal_has_read_time();
}
inline void Target::set_has_read_time() {
  _oneof_case_[1] = kReadTime;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* Target::release_read_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.Target.read_time)
  if (_internal_has_read_time()) {
    clear_has_resume_type();
      PROTOBUF_NAMESPACE_ID::Timestamp* temp = resume_type_.read_time_;
    resume_type_.read_time_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& Target::_internal_read_time() const {
  return _internal_has_read_time()
      ? *resume_type_.read_time_
      : *reinterpret_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(&PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& Target::read_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.read_time)
  return _internal_read_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* Target::_internal_mutable_read_time() {
  if (!_internal_has_read_time()) {
    clear_resume_type();
    set_has_read_time();
    resume_type_.read_time_ = CreateMaybeMessage< PROTOBUF_NAMESPACE_ID::Timestamp >(
        GetArenaNoVirtual());
  }
  return resume_type_.read_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* Target::mutable_read_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.Target.read_time)
  return _internal_mutable_read_time();
}

// int32 target_id = 5;
inline void Target::clear_target_id() {
  target_id_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 Target::_internal_target_id() const {
  return target_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 Target::target_id() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.target_id)
  return _internal_target_id();
}
inline void Target::_internal_set_target_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  target_id_ = value;
}
inline void Target::set_target_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_target_id(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.Target.target_id)
}

// bool once = 6;
inline void Target::clear_once() {
  once_ = false;
}
inline bool Target::_internal_once() const {
  return once_;
}
inline bool Target::once() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.Target.once)
  return _internal_once();
}
inline void Target::_internal_set_once(bool value) {
  
  once_ = value;
}
inline void Target::set_once(bool value) {
  _internal_set_once(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.Target.once)
}

inline bool Target::has_target_type() const {
  return target_type_case() != TARGET_TYPE_NOT_SET;
}
inline void Target::clear_has_target_type() {
  _oneof_case_[0] = TARGET_TYPE_NOT_SET;
}
inline bool Target::has_resume_type() const {
  return resume_type_case() != RESUME_TYPE_NOT_SET;
}
inline void Target::clear_has_resume_type() {
  _oneof_case_[1] = RESUME_TYPE_NOT_SET;
}
inline Target::TargetTypeCase Target::target_type_case() const {
  return Target::TargetTypeCase(_oneof_case_[0]);
}
inline Target::ResumeTypeCase Target::resume_type_case() const {
  return Target::ResumeTypeCase(_oneof_case_[1]);
}
// -------------------------------------------------------------------

// TargetChange

// .google.firestore.v1.TargetChange.TargetChangeType target_change_type = 1;
inline void TargetChange::clear_target_change_type() {
  target_change_type_ = 0;
}
inline ::google::firestore::v1::TargetChange_TargetChangeType TargetChange::_internal_target_change_type() const {
  return static_cast< ::google::firestore::v1::TargetChange_TargetChangeType >(target_change_type_);
}
inline ::google::firestore::v1::TargetChange_TargetChangeType TargetChange::target_change_type() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.TargetChange.target_change_type)
  return _internal_target_change_type();
}
inline void TargetChange::_internal_set_target_change_type(::google::firestore::v1::TargetChange_TargetChangeType value) {
  
  target_change_type_ = value;
}
inline void TargetChange::set_target_change_type(::google::firestore::v1::TargetChange_TargetChangeType value) {
  _internal_set_target_change_type(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.TargetChange.target_change_type)
}

// repeated int32 target_ids = 2;
inline int TargetChange::_internal_target_ids_size() const {
  return target_ids_.size();
}
inline int TargetChange::target_ids_size() const {
  return _internal_target_ids_size();
}
inline void TargetChange::clear_target_ids() {
  target_ids_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TargetChange::_internal_target_ids(int index) const {
  return target_ids_.Get(index);
}
inline ::PROTOBUF_NAMESPACE_ID::int32 TargetChange::target_ids(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.TargetChange.target_ids)
  return _internal_target_ids(index);
}
inline void TargetChange::set_target_ids(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) {
  target_ids_.Set(index, value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.TargetChange.target_ids)
}
inline void TargetChange::_internal_add_target_ids(::PROTOBUF_NAMESPACE_ID::int32 value) {
  target_ids_.Add(value);
}
inline void TargetChange::add_target_ids(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_add_target_ids(value);
  // @@protoc_insertion_point(field_add:google.firestore.v1.TargetChange.target_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
TargetChange::_internal_target_ids() const {
  return target_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >&
TargetChange::target_ids() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.TargetChange.target_ids)
  return _internal_target_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
TargetChange::_internal_mutable_target_ids() {
  return &target_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >*
TargetChange::mutable_target_ids() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.TargetChange.target_ids)
  return _internal_mutable_target_ids();
}

// .google.rpc.Status cause = 3;
inline bool TargetChange::_internal_has_cause() const {
  return this != internal_default_instance() && cause_ != nullptr;
}
inline bool TargetChange::has_cause() const {
  return _internal_has_cause();
}
inline const ::google::rpc::Status& TargetChange::_internal_cause() const {
  const ::google::rpc::Status* p = cause_;
  return p != nullptr ? *p : *reinterpret_cast<const ::google::rpc::Status*>(
      &::google::rpc::_Status_default_instance_);
}
inline const ::google::rpc::Status& TargetChange::cause() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.TargetChange.cause)
  return _internal_cause();
}
inline ::google::rpc::Status* TargetChange::release_cause() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.TargetChange.cause)
  
  ::google::rpc::Status* temp = cause_;
  cause_ = nullptr;
  return temp;
}
inline ::google::rpc::Status* TargetChange::_internal_mutable_cause() {
  
  if (cause_ == nullptr) {
    auto* p = CreateMaybeMessage<::google::rpc::Status>(GetArenaNoVirtual());
    cause_ = p;
  }
  return cause_;
}
inline ::google::rpc::Status* TargetChange::mutable_cause() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.TargetChange.cause)
  return _internal_mutable_cause();
}
inline void TargetChange::set_allocated_cause(::google::rpc::Status* cause) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(cause_);
  }
  if (cause) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
    if (message_arena != submessage_arena) {
      cause = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, cause, submessage_arena);
    }
    
  } else {
    
  }
  cause_ = cause;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.TargetChange.cause)
}

// bytes resume_token = 4;
inline void TargetChange::clear_resume_token() {
  resume_token_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& TargetChange::resume_token() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.TargetChange.resume_token)
  return _internal_resume_token();
}
inline void TargetChange::set_resume_token(const std::string& value) {
  _internal_set_resume_token(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.TargetChange.resume_token)
}
inline std::string* TargetChange::mutable_resume_token() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.TargetChange.resume_token)
  return _internal_mutable_resume_token();
}
inline const std::string& TargetChange::_internal_resume_token() const {
  return resume_token_.GetNoArena();
}
inline void TargetChange::_internal_set_resume_token(const std::string& value) {
  
  resume_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void TargetChange::set_resume_token(std::string&& value) {
  
  resume_token_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.TargetChange.resume_token)
}
inline void TargetChange::set_resume_token(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  resume_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.TargetChange.resume_token)
}
inline void TargetChange::set_resume_token(const void* value, size_t size) {
  
  resume_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.TargetChange.resume_token)
}
inline std::string* TargetChange::_internal_mutable_resume_token() {
  
  return resume_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* TargetChange::release_resume_token() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.TargetChange.resume_token)
  
  return resume_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void TargetChange::set_allocated_resume_token(std::string* resume_token) {
  if (resume_token != nullptr) {
    
  } else {
    
  }
  resume_token_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), resume_token);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.TargetChange.resume_token)
}

// .google.protobuf.Timestamp read_time = 6;
inline bool TargetChange::_internal_has_read_time() const {
  return this != internal_default_instance() && read_time_ != nullptr;
}
inline bool TargetChange::has_read_time() const {
  return _internal_has_read_time();
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& TargetChange::_internal_read_time() const {
  const PROTOBUF_NAMESPACE_ID::Timestamp* p = read_time_;
  return p != nullptr ? *p : *reinterpret_cast<const PROTOBUF_NAMESPACE_ID::Timestamp*>(
      &PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const PROTOBUF_NAMESPACE_ID::Timestamp& TargetChange::read_time() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.TargetChange.read_time)
  return _internal_read_time();
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* TargetChange::release_read_time() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.TargetChange.read_time)
  
  PROTOBUF_NAMESPACE_ID::Timestamp* temp = read_time_;
  read_time_ = nullptr;
  return temp;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* TargetChange::_internal_mutable_read_time() {
  
  if (read_time_ == nullptr) {
    auto* p = CreateMaybeMessage<PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaNoVirtual());
    read_time_ = p;
  }
  return read_time_;
}
inline PROTOBUF_NAMESPACE_ID::Timestamp* TargetChange::mutable_read_time() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.TargetChange.read_time)
  return _internal_mutable_read_time();
}
inline void TargetChange::set_allocated_read_time(PROTOBUF_NAMESPACE_ID::Timestamp* read_time) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(read_time_);
  }
  if (read_time) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(read_time)->GetArena();
    if (message_arena != submessage_arena) {
      read_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, read_time, submessage_arena);
    }
    
  } else {
    
  }
  read_time_ = read_time;
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.TargetChange.read_time)
}

// -------------------------------------------------------------------

// ListCollectionIdsRequest

// string parent = 1;
inline void ListCollectionIdsRequest::clear_parent() {
  parent_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListCollectionIdsRequest::parent() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListCollectionIdsRequest.parent)
  return _internal_parent();
}
inline void ListCollectionIdsRequest::set_parent(const std::string& value) {
  _internal_set_parent(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListCollectionIdsRequest.parent)
}
inline std::string* ListCollectionIdsRequest::mutable_parent() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListCollectionIdsRequest.parent)
  return _internal_mutable_parent();
}
inline const std::string& ListCollectionIdsRequest::_internal_parent() const {
  return parent_.GetNoArena();
}
inline void ListCollectionIdsRequest::_internal_set_parent(const std::string& value) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListCollectionIdsRequest::set_parent(std::string&& value) {
  
  parent_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListCollectionIdsRequest.parent)
}
inline void ListCollectionIdsRequest::set_parent(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListCollectionIdsRequest.parent)
}
inline void ListCollectionIdsRequest::set_parent(const char* value, size_t size) {
  
  parent_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListCollectionIdsRequest.parent)
}
inline std::string* ListCollectionIdsRequest::_internal_mutable_parent() {
  
  return parent_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListCollectionIdsRequest::release_parent() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListCollectionIdsRequest.parent)
  
  return parent_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListCollectionIdsRequest::set_allocated_parent(std::string* parent) {
  if (parent != nullptr) {
    
  } else {
    
  }
  parent_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), parent);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListCollectionIdsRequest.parent)
}

// int32 page_size = 2;
inline void ListCollectionIdsRequest::clear_page_size() {
  page_size_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ListCollectionIdsRequest::_internal_page_size() const {
  return page_size_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 ListCollectionIdsRequest::page_size() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListCollectionIdsRequest.page_size)
  return _internal_page_size();
}
inline void ListCollectionIdsRequest::_internal_set_page_size(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  page_size_ = value;
}
inline void ListCollectionIdsRequest::set_page_size(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_page_size(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListCollectionIdsRequest.page_size)
}

// string page_token = 3;
inline void ListCollectionIdsRequest::clear_page_token() {
  page_token_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListCollectionIdsRequest::page_token() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListCollectionIdsRequest.page_token)
  return _internal_page_token();
}
inline void ListCollectionIdsRequest::set_page_token(const std::string& value) {
  _internal_set_page_token(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListCollectionIdsRequest.page_token)
}
inline std::string* ListCollectionIdsRequest::mutable_page_token() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListCollectionIdsRequest.page_token)
  return _internal_mutable_page_token();
}
inline const std::string& ListCollectionIdsRequest::_internal_page_token() const {
  return page_token_.GetNoArena();
}
inline void ListCollectionIdsRequest::_internal_set_page_token(const std::string& value) {
  
  page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListCollectionIdsRequest::set_page_token(std::string&& value) {
  
  page_token_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListCollectionIdsRequest.page_token)
}
inline void ListCollectionIdsRequest::set_page_token(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListCollectionIdsRequest.page_token)
}
inline void ListCollectionIdsRequest::set_page_token(const char* value, size_t size) {
  
  page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListCollectionIdsRequest.page_token)
}
inline std::string* ListCollectionIdsRequest::_internal_mutable_page_token() {
  
  return page_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListCollectionIdsRequest::release_page_token() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListCollectionIdsRequest.page_token)
  
  return page_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListCollectionIdsRequest::set_allocated_page_token(std::string* page_token) {
  if (page_token != nullptr) {
    
  } else {
    
  }
  page_token_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), page_token);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListCollectionIdsRequest.page_token)
}

// -------------------------------------------------------------------

// ListCollectionIdsResponse

// repeated string collection_ids = 1;
inline int ListCollectionIdsResponse::_internal_collection_ids_size() const {
  return collection_ids_.size();
}
inline int ListCollectionIdsResponse::collection_ids_size() const {
  return _internal_collection_ids_size();
}
inline void ListCollectionIdsResponse::clear_collection_ids() {
  collection_ids_.Clear();
}
inline std::string* ListCollectionIdsResponse::add_collection_ids() {
  // @@protoc_insertion_point(field_add_mutable:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
  return _internal_add_collection_ids();
}
inline const std::string& ListCollectionIdsResponse::_internal_collection_ids(int index) const {
  return collection_ids_.Get(index);
}
inline const std::string& ListCollectionIdsResponse::collection_ids(int index) const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
  return _internal_collection_ids(index);
}
inline std::string* ListCollectionIdsResponse::mutable_collection_ids(int index) {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
  return collection_ids_.Mutable(index);
}
inline void ListCollectionIdsResponse::set_collection_ids(int index, const std::string& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
  collection_ids_.Mutable(index)->assign(value);
}
inline void ListCollectionIdsResponse::set_collection_ids(int index, std::string&& value) {
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
  collection_ids_.Mutable(index)->assign(std::move(value));
}
inline void ListCollectionIdsResponse::set_collection_ids(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  collection_ids_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
}
inline void ListCollectionIdsResponse::set_collection_ids(int index, const char* value, size_t size) {
  collection_ids_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
}
inline std::string* ListCollectionIdsResponse::_internal_add_collection_ids() {
  return collection_ids_.Add();
}
inline void ListCollectionIdsResponse::add_collection_ids(const std::string& value) {
  collection_ids_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
}
inline void ListCollectionIdsResponse::add_collection_ids(std::string&& value) {
  collection_ids_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
}
inline void ListCollectionIdsResponse::add_collection_ids(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  collection_ids_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
}
inline void ListCollectionIdsResponse::add_collection_ids(const char* value, size_t size) {
  collection_ids_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
ListCollectionIdsResponse::collection_ids() const {
  // @@protoc_insertion_point(field_list:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
  return collection_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
ListCollectionIdsResponse::mutable_collection_ids() {
  // @@protoc_insertion_point(field_mutable_list:google.firestore.v1.ListCollectionIdsResponse.collection_ids)
  return &collection_ids_;
}

// string next_page_token = 2;
inline void ListCollectionIdsResponse::clear_next_page_token() {
  next_page_token_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline const std::string& ListCollectionIdsResponse::next_page_token() const {
  // @@protoc_insertion_point(field_get:google.firestore.v1.ListCollectionIdsResponse.next_page_token)
  return _internal_next_page_token();
}
inline void ListCollectionIdsResponse::set_next_page_token(const std::string& value) {
  _internal_set_next_page_token(value);
  // @@protoc_insertion_point(field_set:google.firestore.v1.ListCollectionIdsResponse.next_page_token)
}
inline std::string* ListCollectionIdsResponse::mutable_next_page_token() {
  // @@protoc_insertion_point(field_mutable:google.firestore.v1.ListCollectionIdsResponse.next_page_token)
  return _internal_mutable_next_page_token();
}
inline const std::string& ListCollectionIdsResponse::_internal_next_page_token() const {
  return next_page_token_.GetNoArena();
}
inline void ListCollectionIdsResponse::_internal_set_next_page_token(const std::string& value) {
  
  next_page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
}
inline void ListCollectionIdsResponse::set_next_page_token(std::string&& value) {
  
  next_page_token_.SetNoArena(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.ListCollectionIdsResponse.next_page_token)
}
inline void ListCollectionIdsResponse::set_next_page_token(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  next_page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.firestore.v1.ListCollectionIdsResponse.next_page_token)
}
inline void ListCollectionIdsResponse::set_next_page_token(const char* value, size_t size) {
  
  next_page_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.ListCollectionIdsResponse.next_page_token)
}
inline std::string* ListCollectionIdsResponse::_internal_mutable_next_page_token() {
  
  return next_page_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline std::string* ListCollectionIdsResponse::release_next_page_token() {
  // @@protoc_insertion_point(field_release:google.firestore.v1.ListCollectionIdsResponse.next_page_token)
  
  return next_page_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
inline void ListCollectionIdsResponse::set_allocated_next_page_token(std::string* next_page_token) {
  if (next_page_token != nullptr) {
    
  } else {
    
  }
  next_page_token_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), next_page_token);
  // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.ListCollectionIdsResponse.next_page_token)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace v1
}  // namespace firestore
}  // namespace google

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::google::firestore::v1::TargetChange_TargetChangeType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::google::firestore::v1::TargetChange_TargetChangeType>() {
  return ::google::firestore::v1::TargetChange_TargetChangeType_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2ffirestore_2eproto
